2009-11-03 7 views
0

J'ai écrit du code C# pour enregistrer des spécifications de produit dans un document PDF en utilisant iTextSharp, principalement avec PdfPTable et Chunks/Paragraphs dans les PdfPCells. Cependant, on m'a dit que la sortie est inacceptable parce que vous pouvez mettre en surbrillance et copier le texte du logiciel de serveur de stockage et de récupération de documents qu'ils utilisent actuellement ne supporte pas les PDF basés sur "Vector". Je ne suis pas certain de la différence entre un pdf raster et un pdf vectoriel. Fondamentalement, chaque page du document PDF doit être une image afin que le texte ne peut pas être mis en évidence. Est-il possible de le faire sans utiliser le DirectContent? Vous trouverez ci-dessous une image illustrant une partie du fichier PDF qui a été créé et la manière dont le texte peut être sélectionné et copié, ce qui est la fonctionnalité incorrecte.Création d'une sortie PDF au format raster au lieu d'un vecteur à l'aide de itextsharp

Je voudrais éviter d'écrire directement sur le canevas, à moins qu'il y ait un moyen de le faire et que itextsharp gère mon formatage et ma pagination.

L'application Windows PDF2R fonctionne bien, mais ne semble pas offrir de solutions programmatiques. J'ai trouvé des bibliothèques qui ont déclaré qu'elles font ce genre de conversion, mais qui coûtent plusieurs milliers de dollars. Je voudrais travailler dans mon budget et utiliser le itextsharp ou quelque chose de beaucoup moins cher que cela.

alt text http://img687.imageshack.us/img687/195/pdfexample.jpg

Répondre

0

Je suggère que vous essayez de générer une image en utilisant la classe System.Drawing puis insérez que dans le document PDF.

+0

Je ne crois pas que cela fonctionne parce que, comme le DirectContent, cela annulera totalement la capacité des bibliothèques de génération pdf à formater, à emballer les mots et à paginer correctement le document. – stephenbayer

1

Appelez ce code sur votre objet PdfWriter:

writer.SetEncryption(PdfWriter.STRENGTH40BITS, null, null, PdfWriter.AllowPrinting); 

Cela n'empêchera pas les utilisateurs de sélectionner le texte, mais il les empêche de copier-coller. Essaie.

Questions connexes