[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Du kannst dir eine PDF auch mittels Notepad ansehen.
    Eine einfache PDF enthält nur Anweisungen zur Seitenaufbereitung, ggf. eingebettete Schriften sowie eben Zeichnungsobjekte (Bilder) im Hexcode.
    Natürlich kannst du eine PDF dann einfach lesen und die Anweisungen (analog des PDF-Readers) entsprechend ausführen.

    Ich verwende z.B. das Freewaretool PDFill. Dieses kann aus PDF's jede Seite als Bild ausgeben. Ggf. gibts hier auch Batchaufrufe um dieses im Hintergrund machen zu können.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  2. #2
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Du brauchst ein Programm, das aus zwei PDFs eine PDF macht.

  3. #3
    Registriert seit
    Aug 2011
    Beiträge
    5
    Hmmm,

    hab da nun selber was gefunden: man kann doch auch (mit iText) mehrere Pdf-Seiten auf eine zusammenfassen. Was ich brauche ist also irgend etwas von der Art:

    PdfContentByte cb = Stamper.GetOverContent(page);
    PdfReader reader = new PdfReader(picture.FullName);
    PdfImportedPage page1 = ????
    cb.AddTemplate(page1, scaleX, 0, 0, scaleY, transX, transY);

    wobei "picture" eben nun die darzustellende Pdf-Datei ist, page die Datei auf die der Stamper drüber "druckt".

    Fehlt also lediglich noch, wie ich aus "picture" oder mittels "reader" zu meiner page1 komme (vorrausgesetzt, dass das gefundene Codesnippet auch wirklich so in C# funzt). - Oder eben irgendwas anderes, was AddTemplate verdauen kann ...

  4. #4
    Registriert seit
    Aug 2011
    Beiträge
    5
    Die Idee ist folgende:
    Ich baue eine Stamper auf, der bekommt eine initiale Pdf-Datei mit, auf die dann (iterativ) diverse weitere Layer drüber gelegt werden. Das Ergebnis wird letztlich dann geschrieben.

    Mit Bildlayern (vgl. erste Mail) und Textlayern klappt das auch wunderbar. Nun brauch ich auch noch ein Abbild eines anderen Pdf.

    Nun gibt es ja mit iText die Möglichkeit, mehrere Pdf zusammenzufassen, z.B. vgl. Tutorials in This section . (Okay, das ist java, nicht C#, aber die Idee sollte ja übertragbar sein.)

    Entsprechend meinem Ansatz vom Freitag hab ich das jetzt ganz analog so umzusetzen versucht:

    PdfContentByte cb = Stamper.GetOverContent(page);

    PdfReader reader = new PdfReader(picture.FullName);

    Document doc = new Document();
    MemoryStream stream = new MemoryStream();
    PdfWriter writer = PdfWriter.GetInstance(doc, stream);

    PdfImportedPage page1 = writer.GetImportedPage(reader, 1); // get the first page of the PDF

    cb.AddTemplate(page1, x, y); // provided it was scaled already accordingly

    also einfach einen temporären Stream aufgemacht, um damit einen writer zu definieren, nur um irgendwie an die page1 zu kommen. Diese so abgegriffene page1 soll nun in Form eines Template als weitere Ebene dem Stamper hinzugefügt werden.

    Leider geht da aber irgendetwas schief. Ich bekomme folgende Fehlermeldung:

    Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
    bei iTextSharp.text.pdf.PdfWriter.get_PdfIndirectRefer ence()
    bei iTextSharp.text.pdf.PdfTemplate.get_IndirectRefere nce()
    bei iTextSharp.text.pdf.PdfWriter.AddDirectTemplateSim ple(PdfTemplate template, PdfName forcedName)
    bei iTextSharp.text.pdf.PdfContentByte.AddTemplate(Pdf Template template, Single a, Single b, Single c, Single d, Single e, Single f)
    bei iTextSharp.text.pdf.PdfContentByte.AddTemplate(Pdf Template template, Single x, Single y)

    Da ich iTextSharp als dll eingebunden habe, kann ich da leider nicht weiter debuggen. Was geht da schief? Und insb., wie lässt sich das reparieren?

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Ich denke, da wird dir hier keine Hilfe zu Teil werden können.
    Such doch mal in anderen Foren, die sich mit Java und PDF öfter beschäftigen.

    Z.B.:
    Export PDF pages to a series of images in Java - Stack Overflow
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  6. #6
    Registriert seit
    Mar 2009
    Beiträge
    59
    schau dir mal deinen link an und was du daraus gemacht hast. Das mit dem Stamper sollte falsch sein.

    Das PdfContentByte holt man sich auch dem writer, den du willst dein PDF Dokument dem writer hinzufügen!
    also so ungefähr müsste es dann aussehen
    Code:
    PdfReader reader = new PdfReader(picture.FullName);
     
    Document doc = new Document();
    MemoryStream stream = new MemoryStream();
    PdfWriter writer = PdfWriter.GetInstance(doc, stream);
     
    PdfContentByte cb = writer.getDirectContent();
     
    
    PdfImportedPage page1 = writer.GetImportedPage(reader, 1);    // get the first page of the PDF
     
    cb.AddTemplate(page1, x, y); // provided it was scaled already accordingly

  7. #7
    Registriert seit
    Aug 2011
    Beiträge
    5
    Und schließlich für diejenigen, die diesen Thread verfolgt haben/verfolgen/oder später mal diesen Thread lesen, hier des Rätsels Lösung:

    PdfContentByte cb = Stamper.GetOverContent(page);

    PdfReader reader = new PdfReader(picture.FullName);
    PdfImportedPage page1 = Stamper.GetImportedPage(reader, 1);
    cb.AddTemplate((PdfTemplate)page1, .8f, 0, 0, .8f, x, y); // scaling down to 80%, and translation

    D.h., einfach den bereits in der Verarbeitung definierten Stamper benutzen, nicht umständlich erst einen neuen PdfWriter erstellen, nur um irgendwie an page1 zu kommen. Dadurch hat man auch keine Probleme mehr mit .Open() und .Close().

Similar Threads

  1. Page segment mit itext in PDF einbinden
    By hrrdn in forum NEWSboard Java
    Antworten: 5
    Letzter Beitrag: 27-11-09, 09:22
  2. AFPRSC --> PDF
    By jgv in forum NEWSboard Drucker
    Antworten: 1
    Letzter Beitrag: 28-11-06, 10:15
  3. EXCEL, PDF, ZIP, IDEA, e-mail, alles auf iSeries
    By Kilianski in forum NEWSboard Server Software
    Antworten: 0
    Letzter Beitrag: 22-11-06, 15:23
  4. PDF und mehr für iher System
    By mk in forum NEWSboard Server Software
    Antworten: 2
    Letzter Beitrag: 31-08-06, 12:30
  5. Spool -> PDF benötigte Lizenzprogramme
    By cseitz in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 20-06-06, 14:40

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •