Laden...

Gratis PDF Klasse - Vorlage PDF einbinden

Erstellt von manunidi vor 15 Jahren Letzter Beitrag vor 15 Jahren 2.428 Views
M
manunidi Themenstarter:in
221 Beiträge seit 2008
vor 15 Jahren
Gratis PDF Klasse - Vorlage PDF einbinden

Hallo,

ich habe eine PDF Vorlage, und muss "auf dieses" Text bzw. Bilder legen.
Mit welcher Gratis PDF Klasse geht das, bzw. wie geht das?

Hab schon gesucht, jedoch scheint das Sharppdf bzw. itextsharp nicht zu können!

726 Beiträge seit 2003
vor 15 Jahren

Hallo manunidi,
itextsharp kannst du benutzen
http://itextsharp.sourceforge.net/

Dazu gibt es hier im Forum auch einige Fragen .

Forumssuche nach itextsharp

M
manunidi Themenstarter:in
221 Beiträge seit 2008
vor 15 Jahren

Leider kann ich den von dir angefügten Beitrag nicht öffnen
( dieser wurde bereits gelöscht!!! )

Wie genau kann ich mit itextsharp eine vorlage einfügen?

104 Beiträge seit 2006
vor 15 Jahren

Das ist kein Beitrag, sondern eine Suche im Forum nach itextsharp.

Aber ich denke die Antworten auf deine Fragen bekommst du in der itextsharp Doku.

726 Beiträge seit 2003
vor 15 Jahren
M
manunidi Themenstarter:in
221 Beiträge seit 2008
vor 15 Jahren

Das ist mir eigentlich noch alles klar!
Nur wenn ich so z.b. einen Text zu meiner vorlage hinzufüge:

            
Document pdf = new Document();
            PdfWriter.GetInstance(pdf, new FileStream("D:\\vorlage.pdf", FileMode.Open));
            pdf.Open();
            pdf.Add(new Paragraph("Hello World"));
            pdf.Close();

dann geht der alte inhalt in der vorlage einfach verloren!
Wieso?

726 Beiträge seit 2003
vor 15 Jahren

hier mal ein Beispiel:


// Methode private byte[] ErzeugeAuftragsRechnungPdf()

Document pdfDokument = new Document(new iTextSharp.text.Rectangle(595, 842));
            


            MemoryStream ausgabestrom = new MemoryStream();

            PdfWriter pdfSchreiber = PdfWriter.GetInstance(pdfDokument, ausgabestrom);

            pdfDokument.Open();
            PdfContentByte pdfInhalt = pdfSchreiber.DirectContent;

            PdfReader pdfLeser = new PdfReader(Resources.meinPDF); // fertiges PDF zum "Überschreiben" angeben
            PdfImportedPage pdfImportiertesPDF = pdfSchreiber.GetImportedPage(
                pdfLeser,
                1
            );

jetzt das Template hinzufügen


pdfInhalt.AddTemplate(pdfImportiertesPDF, 0f, 0f);
            pdfInhalt.BeginText();
            pdfInhalt.SetFontAndSize(verdana, 9);
            pdfInhalt.SetLeading(12f);

jetzt die Objekte hinzufügen


pdfInhalt.SetTextMatrix(350f, 680f);
            pdfInhalt.ShowText("(Bitte bei Rückfragen angeben)");
            pdfInhalt.NewlineText();
            pdfInhalt.ShowText("Kunden-Nummer:");
            pdfInhalt.NewlineText();
            pdfInhalt.ShowText("Rechnungs-/Auftrags-Nr.:");
            pdfInhalt.NewlineText();
            pdfInhalt.ShowText("Bestelldatum:");
            pdfInhalt.NewlineShowText("Versanddatum:");
            pdfInhalt.NewlineShowText("Zahlungsart:");
            pdfInhalt.NewlineText();
            pdfInhalt.ShowText("Versandart:");

PDF schließen nach dem Schreiben


 pdfInhalt.EndText();

           pdfSchreiber.ViewerPreferences = PdfWriter.PageModeUseOutlines;
           pdfDokument.Close();

           return ausgabestrom.ToArray(); // return


PDF generieren



private void DruckeAuftragsRechnung()
        {
            byte[] pdf = ErzeugeAuftragsRechnungPdf();
            if (pdf == null)
            {
                return;
            }

            string temporaererDateiname = Path.GetTempFileName();
            temporaererDateiname = Path.ChangeExtension(temporaererDateiname, ".pdf");
            FileStream ausgabestrom = new FileStream(
                temporaererDateiname,
                FileMode.OpenOrCreate
                );

            ausgabestrom.Write(pdf, 0, pdf.Length);
            ausgabestrom.Close();

            ProzessStarter.OeffneDatei(temporaererDateiname, true); // Anzeigen des PDFs

        }


wie gehabt nur ein Beispiel...