J'utilise ActivePDF Toolkit depuis un certain temps mais je voudrais passer ma solution à iTextSharp. Je compare la performance de l'un par rapport à l'autre et trouve que iTextSharp est plus lent que activePDF lors du remplissage de champs de formulaire sur un PDF. Voici le code que je utilise pour iTextSharp:itextSharp SetField Performance (vs ActivePDF Toolkit)
using (MemoryStream memoryStream = new MemoryStream())
{
PdfReader pdfReader = new PdfReader(template);
PdfStamper pdfStamper = new PdfStamper(pdfReader, memoryStream);
pdfStamper.FormFlattening = true;
AcroFields pdfFormFields = pdfStamper.AcroFields;
foreach (Field f in fields)
pdfFormFields.SetField(f.Name,f.Value);
}
Il est seulement quelques millisecondes plus lent par la forme, mais qui ajoute quand vous traitez des centaines de milliers de formes lors de la création d'un seul PDF. J'espérais qu'il pourrait y avoir une façon différente de définir la valeur des champs, mais je n'en vois pas (j'ai aussi regardé AcroFields.cs).
Quelqu'un a des idées à ce sujet?
ActivePDF crée-t-il également des apparences et aplatit le formulaire par la suite? – mkl
Je ne suis pas familier avec le concept des "apparences", mais ma solution avec activePDF fait de l'aplatissement. J'ai essayé iTextSharp sans l'aplatissement et les résultats étaient à peu près les mêmes – VandyLtd
Si vous remplissez le même formulaire encore et encore, vous pouvez utiliser la méthode 'setFieldCache()' comme indiqué dans ['Subscribe'] (http: // itextpdf .com/examples/iia.php? id = 161) exemple. Cela permettra de garder un cache des propriétés des champs, évitant ainsi d'avoir à lire le modèle encore et encore. –