2010-12-17 7 views
2

Ich habe ein System zum Erstellen eines PDF-Buches von Benutzern eigenen Bildern. Die Bilder sind in hoher Auflösung und die PDF endet mit etwa 70 Seiten mit Bildern auf den meisten von ihnen.ABCPdf verwendet viel Speicher und erzeugt riesige Dateien. Lösung?

Wenn der PDF-Generierung die in einer lokalen Anwendung auf dem Server der Prozess um 3GB RAM verwendet, die es häufiger abstürzen macht dann gelingt es. Die Dateien sind auch wirklich riesig, etwa 1,2 GB. Wenn man es durch einen Druck in ein PDF-Dokument umwandelt, würde es hundert Mal kleiner werden.

Gibt es eine Möglichkeit, ABCPdf weniger Speicher zu verwenden und kleinere Dateien zu erstellen?

+1

Welche Dateigröße verwenden Sie? Welche Auflösung? Welche Größe haben die PDF-Seiten? – Oded

+2

Da es sich um ein kommerzielles Produkt handelt, wie wäre es mit dem Support: http://www.websupergoo.com/contactus.htm# –

Antwort

1

Ich habe eine sehr ähnliche Erfahrung mit iTextSharp hatte, wo ich im Grunde aus dem Speicher zu jeder Zeit lief ich eine große PDF mit Bildern drin.

Ich fand, dass es eine Funktion gibt, die ich aufrufen sollte, um Bilder freizugeben, nachdem ich mit dem Bild fertig bin, da es es im Speicher hält, falls Sie es wieder verwenden möchten oder bis Sie schließlich das PDF schließen.

Verwenden Sie das Bild entweder erneut, wenn sich die Kopf-/Fußzeilenlogos wiederholen, oder geben Sie Bilder auf dem Bildschirm frei.
Wahrscheinlich ist das das Problem, mit dem Sie konfrontiert sind, aber ich habe keine Erfahrung in ABCPdf.

+0

Hört sich nach einer fairen Lösung an, aber wie macht man das in ABCPdf? – Martin

+0

@Martin - Ich bin mir nicht sicher, wie Sie es verwenden, aber wenn Sie die 'XImage' Klasse verwenden, versuchen Sie es mit' Clear() 'und' Dispose() 'Funktionen. Ich fand es unter http://www.websupergoo.com/helppdf7net/source/5-abcpdf6/ximage/default.htm – BeemerGuy

+0

@Martin - und indem ich sie anrufe, meine ich jedes Mal direkt nachdem Sie sie dem Dokument hinzugefügt haben. – BeemerGuy

1

Ich habe nicht ABCpdf direkt verwendet, aber ich würde vermuten, dass die Bilder die Quelle Ihrer Probleme sind, die Größe ändern, bevor sie in den PDF-Objekte enthalten sind. Ich vermute, dass dies ein Print-to-PDF-Prozess ist.

1

Noch eine Anmerkung, für sehr große PDFs können Sie "linearize" auf false setzen.

 <pdfDoc.SaveOptions.Linearize = false;> 

Dies optimiert die PDF für Web-Streaming, also, wenn Sie die PDF-Streaming, dann könnten Sie wollen es als wahr verlassen, aber ich habe es drastisch fand den Speicher durch ABCpdf während des Speicher verwendet erhöht.