2016-04-25 3 views
0

Ich versuche, einige Daten auf eine Seite eines PDF anhängen, indem Sie das PDF Versionierungssystem (zB Daten an das Ende eines gültigen Anhängen PDF mit eigenen XREF und was nicht).Ist es möglich, mit Änderung des ursprünglichen Seite Objektdaten in eine PDF-Seite anhängen

Im Moment bin ich versucht, nur ein Proof of Concept zu tun. Ich kann ein orangefarbenes Quadrat an eine vorhandene Seite anhängen, aber ich muss das ursprüngliche Seitenobjekt analysieren, das Array "Inhalt" ändern und die hinzuzufügenden Daten hinzufügen. Beispiel:

Original Seite:

5 0 obj 
<< 
/Parent 4 0 R 
/Contents[2 0 R 8 0 R 3 0 R] 
/Type 
    /Page 
/Resources 
    << 
    /ExtGState 
    << 
    /GSa 6 0 R 
    >> 
    /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] 
    /XObject 
    << 
    /Im9 9 0 R 
    >> 
    /ColorSpace 
    << 
    /CSp/DeviceRGB/CSpg/DeviceGray/PCSp 7 0 R 
    >> 
    /Font 
    << 
    /F11 10 0 R 
    /F6 11 0 R 
    /Xi0 1 0 R 
    >> 
    >> 
/MediaBox[0 0 595 842] 
/Annots 12 0 R 
>> 
endobj 

Modified Seite:

5 0 obj 
<< 
/Parent 4 0 R 
/Contents[2 0 R 8 0 R 3 0 R 2 0 R 901 0 R 3 0 R] 
/Type 
    /Page 
/Resources 
    << 
    /ExtGState 
    << 
    /GSa 6 0 R 
    >> 
    /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] 
    /XObject 
    << 
    /Im9 9 0 R 
    >> 
    /ColorSpace 
    << 
    /CSp/DeviceRGB/CSpg/DeviceGray/PCSp 7 0 R 
    >> 
    /Font 
    << 
    /F11 10 0 R 
    /F6 11 0 R 
    /Xi0 1 0 R 
    >> 
    >> 
/MediaBox[0 0 595 842] 
/Annots 12 0 R 
>> 
endobj 

Wie Sie sehen, ich bin der Inhalt Array nur zu verändern, um meine eigenen Daten (ein orangefarbenes Quadrat mit dem Einsatz Objekt-ID "901").

Ist es möglich, das gleiche Ergebnis zu erzielen, ohne & Parsen der ursprünglichen Seite Objekt zu modifizieren?

Antwort

1

Da der/Contents Array ein direktes Objekt ist, wird die gesamte Seite Objekt modifiziert, so dass Sie die Seite Objekt zu analysieren haben und schreiben Sie es mit dem neuen/Contents Array.

Wenn der/Contents ein indirektes Objekt gewesen wäre, dann haben Sie nur das Array geändert könnten die Seite Objekt ohne sie zu berühren.

Verwandte Themen