2009-10-31 8 views
2

Comment est-ce que je peux créer un PDF non imprimable par programme en utilisant .net?Comment est-ce que je peux faire un pdf non-imprimable par programme?

+2

Quelle bibliothèque ou méthode utilisez-vous actuellement, le cas échéant, pour générer ou accéder au PDF? La solution sera différente, si possible du tout, en fonction de la bibliothèque. – Jason

+0

Jason, Nous convertissons des documents MS Word en utilisant Adobe Pro. –

Répondre

5

Réponse courte. Tu ne peux pas. Vous pouvez essayer de définir un paramètre DRM pour empêcher l'impression, mais tout dépend du logiciel du client pour le rendu du PDF et s'il respecte le DRM ou non. En outre, en supposant que vous puissiez visualiser un PDF, rien n'empêche l'utilisateur de prendre des captures d'écran du contenu présenté dans le PDF.

+0

Merci Steven, pour votre réponse rapide. Je comprends que nous ne pouvons pas empêcher nos utilisateurs d'imprimer et de prendre des captures d'écran s'ils veulent pirater le pdf.Nous voulons simplement désactiver le bouton d'impression car ces utilisateurs ne peuvent rien installer sur leurs machines et les captures d'écran ne sont pas notre préoccupation. Comment puis-je définir un paramètre DRM en utilisant .net? –

2

Bien sûr, vous pouvez empêcher l'impression! Bien sûr, vous ne pouvez pas empêcher une capture d'écran, mais vous pouvez certainement empêcher un utilisateur occasionnel d'imprimer un PDF dans Adobe Reader. Je sais que dans notre produit ActiveReports lorsque nous exportons PDF, vous pouvez spécifier différentes options de sécurité qui déterminent si l'utilisateur visualisant le PDF peut imprimer ou non. Le développeur peut spécifier un mot de passe administrateur qui peut être utilisé pour autoriser uniquement certains utilisateurs à imprimer, tout en empêchant ceux qui n'ont pas le mot de passe d'imprimer.

Vous pouvez en savoir plus à ce sujet dans le PdfSecurity enumeration documentation d'ActiveReports. Un exemple de code se trouve dans la documentation here. Suivez quelques liens sur cette page pour voir plus d'informations.

Si vous souhaitez charger un fichier PDF existant et modifier généralement les gens suggèrent . Bien que je ne l'utilise pas, d'autres personnes le recommandent fortement et je pense que cela fonctionnera pour ce scénario de lecture + modification. J'ai réussi à trouver un exemple de la façon dont vous pouvez utiliser iTextSharp pour activer/désactiver le "AllowPrint" et d'autres autorisations here.

0

Semble que vous êtes vraiment à la recherche d'un objet de stratégie de groupe dans Active Directory qui empêche les utilisateurs d'imprimer, peut-être?

mise à jour
Qu'est ce qui empêche les utilisateurs d'envoyer dit le PDF à eux-mêmes et l'impression à la maison, autre qu'un GPO qui empêche les pièces jointes avec des extensions données ou sur certaines tailles?

+1

Ce serait certainement une solution, mais ce serait une solution inflexible. – monksy

+1

Si vous cherchez à éviter d'imprimer, vous avez l'impression que vous recherchez l'inflexibilité? Peut-être que je me trompe, et j'aimerais avoir des nouvelles du PO pour voir si c'est une évaluation incorrecte. – warren

0

Vous avez un certain nombre d'options en fonction de tous les détails des exigences, mais le plus simple serait en effet de définir le cryptage du mot de passe sur le document. Comme certaines des personnes mentionnées ci-dessus, vous pouvez définir un mot de passe propriétaire et un mot de passe utilisateur pour crypter le document. Le mot de passe propriétaire permet essentiellement l'accès au niveau administrateur et ouvre complètement le document à toutes les opérations. Le mot de passe de l'utilisateur ouvre le document mais l'accès est limité à ce que vous avez spécifié au moment du cryptage, par exemple, si vous désactivez les droits d'impression, une personne qui fournit le mot de passe utilisateur ne pourra pas imprimer le PDF.

Nous offrons une solution qui prend en charge .NET et peut facilement crypter et également décrypter des fichiers PDF. Voici un lien vers l'API docs si vous êtes intéressés à donner un coup d'oeil:

http://www.pdfonline.com/easypdf/epsdk_manual/index.htm?page=reference%2Fpdfprocessorsdk%2Fpdfprocessor%2Fm_encrypt.htm 

L'idée serait d'appeler la fonction Encrypt() ci-dessus et passer un argument PrintingPerm de PRC_SEC_PRINT_PERM_NONE. Vous pouvez également définir d'autres autorisations d'accès comme la modification, le copier/coller, etc., si vous le souhaitez.

Espérons que cela aide.

Questions connexes