2011-01-09 15 views
0

Hallo Leute. Ich benutze diesen Code, um pdf zu zeichnen, aber ich habe das pdf-Bild zu jpeg2000.so komprimiert das cgpdfdocument kann das jpeg2000 nicht entschlüsseln, zeige nur noting aber blank.how kann ich es machen, um das jpeg2000 zu entschlüsseln? thanks.any Beratung wird dankbar sein.CGPDFDocument kann jpeg2000 nicht zeichnen?

CGPDFDocumentRef document; 
CGPDFPageRef page; 
CGRect box; 
document = MyGetPDFDocumentRef (filename); // 1 
page = CGPDFDocumentGetPage (document, pageNumber); // 2 
CGContextDrawPDFPage (myContext, page); // 3 
CGPDFDocumentRelease (document); 
+0

Was meinen Sie mit "komprimieren Sie das PDF-Bild zu JPEG2000"? Zeigt 'filename' auf eine PDF-Dokumentdatei oder auf eine JPEG 2000-Bilddatei? –

+0

die pdf enthält einige images.but die Bilder sind alle in jped2000.i verschlüsselt. Verwenden Sie CGPDFDocumentRef, um pdf zu zeichnen, aber zeichnen Sie die Bilder überhaupt nicht. Thanks Bavarious – zhouxiang

Antwort

0

Dies ist wahrscheinlich ein Fehler in Apples CoreGraphics-Bibliothek. Apples Engine unterstützt definitiv JPEG 2000, obwohl der Dekomprimierungscode sehr langsam ist, funktioniert es sicherlich.

Es gibt sogar ein Open-Source-Beispiel that shows how to decompress JPEG 2000 using ImageIO - aber das wird Ihnen nicht viel anderes helfen, als die Frage nach JPEG 2000-Kompatibilität zu beantworten.

Ich empfehle, ein Radar mit dem fehlerhaften PDF an radar.apple.com einzureichen.

Allerdings nicht hoffen, dass dies in absehbarer Zeit behoben wird. Über die Jahre haben wir unzählige Rendering-Probleme mit der CoreGraphics PDF-Render-Engine gemeldet, wie wir sie im kommerziellen PSPDFKit SDK v1-v4 verwendet haben. Mit der letztjährigen v5-Veröffentlichung sind wir endlich fertig und haben auf unsere eigene Rendering-Engine umgestellt, die viele der Probleme der Apple-Engine verbessert hat, insbesondere bei exotischen Dateien oder Komprimierungsformaten. Sie können gerne unsere SDK und Render-Engine und please report a bug to us as well if you find a file that renders in Adobe Acrobat but not our SDK ausprobieren - wir sind jetzt wirklich gut in Bezug auf Kompatibilität und vertrauen auf große Marken wie Dropbox oder IBM.