3-Heights™ PDF Toolbox – Entwicklerkomponente für die PDF Verarbeitung

Die 3-Heights™ PDF Toolbox ist eine hochperformante, plattformunabhängige Komponente für das Erzeugen und Assemblieren von PDF/A konformen Dokumenten.

Assemblieren

Setzen Sie PDF Dokumente aus beliebigen Quellen zusammen

Anreichern

Reichern Sie PDF Dokumente mit Zusatzinformationen, wie z.B. Stempel, an

Ergänzen

Ergänzen Sie PDF Dokumente durch neue Seiten mit beliebigen Inhalten

PDF Toolbox- Erweiterte PDF Bearbeitung - Bearbeiten und Zusammenstellen von PDF-Dokumenten

PDF toolbox - Funktionen

Dokumentenzusammenstellung

  • Kopieren von Seiten bestehender PDF Dokumente
  • Kopieren von Annotationen/Kommentaren, Formularfeldern, Links, Strukturinformationen, Lesezeichen, Sprungmarken
  • Auflösen von Annotationen, Formularfeldern, Signaturen
  • Ressourcenoptimierung
  • Seiten zuschneiden und drehen
  • Freies Zusammenstellen von Inhalten: Overlays, Underlays, Stempeln, Transformieren
  • Verschlüsselung: Benutzerpasswort, Eigentümerpasswort, Berechtigungen
  • Kopieren und Ändern von Dokument-Metadaten
  • Kopieren und Ändern von Seiten-Metadaten

Inhaltsgenerierung

  • Erstellen von neuen PDF Inhalten von Grund auf
  • Aufbringen von Inhalt auf existierende Seiten

Farben

  • RGB, CMYK und Graustufen
  • ICC Farbprofile
  • Transparenz: Alpha und Blend Modus

Pfade

  • Linien
  • Rechtecke, Kreise, Bézierkurven, Ellipsen

Text

  • Schriftgröße, Zeichenabstand, Wortabstand
  • Einfaches Textlayout ermöglichen
  • Standard PDF Schriften, installierte Schriften
  • Unicode Zeichen
  • Textstrich: Linienbreite, Linienverbindung und Striche
  • Text Füllen und Markieren, unsichtbarer Text
  • Text als Beschneidungspfad verwenden

Bilder

  • Bi-Level: CCITT G3, G3 2D und G4, Flate, LZW, Packbits, unkomprimiert
  • 4 Bit und 8 Bit Graustufen: Flate, LZW, Packbits, JPEG und JPEG-6 (nur 8 Bit), unkomprimiert
  • RGB: Flate, JPEG und JPEG-6, LZW, Packbits, unkomprimiert

Transformationen

  • Übersetzung
  • Skalieren
  • Verzerren (Horizontal oder Vertikal)
  • Rotation

Extrahieren

  • Dokumentinformationen: Titel, Autor, Betreff, Schlagwörter, Ersteller, Produzent, Erstellungsdatum, Änderungsdatum
  • Dokument XMP Metadaten
  • Seite XMP Metadaten
  • Signaturfelder: Name, Ort, Grund, Kontaktinformationen, Datum, Sichtbarkeit

Conformance

  • ISO 19005-1 (PDF/A-1)
  • ISO 19005-2 (PDF/A-2)
  • ISO 19885-3 (PDF/A-3)
  • ISO 32000 (PDF 1.7)

Unterstützte Formate

Eingangsformate

  • PDF (Portable Document Format)
  • PDF/A
  • JPEG (Joint Photographic Expert Group)
  • PNG (Portable Network Graphics)
  • GIF (Graphics Interchange Format)
  • BMP (Window Bitmap)
  • JB2 (JBIG2, Joint Bi-level Image Experts Group)
  • JP2 (JPEG2000)
  • JPX (Extended JPEG2000)
  • TIFF (Tagged Image File Format)

Unterstützte Schriftformate

  • Type1
  • TrueType
  • OpenType
  • OpenType(CFF)

Ausgangsformate

  • PDF
  • PDF/A
Vergrößerungslinse für unsere PDF-Handbücher und PDF-Beispielcode

HANDBUCH

API

Einsatzgebiete - Bearbeiten und Zusammenstellen von PDF Dokumenten

PDF Erstellung

Programmatische Erstellung von beliebigen PDF/A konformen Dokumenten, wobei die Inhalte aus beliebigen Quellen stammen können, wie z. B. einer Datenbank oder einem Webseitenformular.

Personalisierung

PDF Dokumente werden für den Vertrieb von E-Books verwendet sowie für das Erstellen von Rechnungen, Verträgen und Bedingungen u. a. in Versicherungsanträgen. Diese Dokumente haben alle eine gemeinsame Anforderung: Sie müssen um empfängerspezifische Informationen ergänzt werden.

Automatisierte Berichterstellung

Grosse Informationsmengen werden auf Datenbank- und DMS-Systemen gespeichert. Die PDF Toolbox eignet sich, um diese Informationen entgegen zu nehmen und daraus verteilbare und standardisierte PDF Dokumente zu erstellen. Somit wird auch die Distribution über Infrastrukturen mit verschiedensten Technologien und Betriebssystemen ermöglicht.

Weitere Einsatzgebiete

  • Erzeugung von benutzerdefinierten Dokumenten wie Angebote, Policendossiers etc.
  • Massenerzeugung von Rechnungen, Berichten usw.
  • PDF Erzeugung „on-the-fly“ in Webserveranwendungen
  • „Save as PDF/A“ Funktion in Anwenderprogrammen
  • Importieren von Bildern und Texten in PDF/A Dokumente

#Beispiel 1 - Einem PDF Dokument Seitennummern hinzufügen

Kopieren Sie ein PDF Dokument in ein neues und stempeln Sie eine Seitennummer ans Ende jeder Seite.

using System.IO;
using PdfTools;
using PdfTools.Pdf;

namespace PdfToolboxSamples
{
    class AddPageNumbersSample
    {
        /// <summary>
        /// Copies a PDF document to a new document and adds a page number to each page
        /// </summary>
        /// <param name="inFilePath">Path to input PDF document</param>
        /// <param name="outFilePath">Path to resulting PDF document</param>
        public static void AddPageNumbers(string inFilePath, string outFilePath)
        {
            // 1. Initialize input and output documents
            using (Stream outFs = new FileStream(outFilePath, FileMode.Create, FileAccess.ReadWrite))
            using (Document outDoc = Document.Create(outFs, Conformance.Unknown, null))
            using (Stream inFs = new FileStream(inFilePath, FileMode.Open, FileAccess.Read))
            using (Document inDoc = Document.Open(inFs, null))
            {
                // 2. Copy metadata and output intent from input to output document
                outDoc.Metadata = outDoc.CopyMetadata(inDoc.Metadata);
                if (inDoc.OutputIntent != null) outDoc.OutputIntent = outDoc.CopyColorSpace(inDoc.OutputIntent);

                // Initialize page number
                int pageNumber = 1;

                // Create embedded font in output document
                using (Font font = outDoc.CreateSystemFont("Arial", "Bold", true))
                {
                    // 3. Loop through all pages of input document
                    foreach (Page inPage in inDoc.Pages)
                    {
                        // 4. Copy page from input to output document
                        using (Page outPage = outDoc.CopyPage(inPage, CopyOption.CopyLinks | CopyOption.CopyAnnotations | CopyOption.CopyFormFields | CopyOption.CopyOutlines))
                        {
                            // 5. Stamp page number on current page of output document and increase page number
                            AddPageNumberToPage(outDoc, outPage, font, pageNumber++);

                            // 6. Add page to output document
                            outDoc.Pages.Add(outPage);
                        }
                    }
                }
            }
        }

        /// <summary>
        /// Stamps a number to the bottom center of a page in the following format: "Page {pageNumber}"
        /// </summary>
        /// <param name="document">Document that contains page</param>
        /// <param name="page">Page onto which the number will be stamped</param>
        /// <param name="font">Font to use</param>
        /// <param name="number">Number to stamp onto the page</param>
        private static void AddPageNumberToPage(Document document, Page page, Font font, int number)
        {
            // Generate string to be stamped as page number
            string stampString = "Page " + number;

            // Create content generator for appending content to or transforming output page
            using (ContentGenerator contentGenerator = new ContentGenerator(page.Content, false))
            {
                // Create text object
                using (Text text = document.CreateText())
                {
                    // Create text generator with the given font, size and position
                    using (TextGenerator textGenerator = new TextGenerator(text, font, 10, null))
                    {
                        // Calculate position for centering text at bottom of page
                        double x = (page.Size.Width / 2) - (textGenerator.GetWidth(stampString) / 2);
                        double y = 8;

                        // Position the text
                        textGenerator.MoveTo(new Point { X = x, Y = y });

                        // Add page number string
                        textGenerator.Show(stampString);
                    }

                    // Paint the positioned text
                    contentGenerator.PaintText(text);
                }
            }
        }
    }
}
PDF Expert blog - the caveats of assembling PDF/A documents

The caveats of assembling PDF/A documents

Assembling PDF documents from various sources is a crucial part of an output management system. And, as the document needs to be archived in most cases, it should conform to the PDF/A standard. Is there a way to assemble a document and accomplish PDF/A conformance in one step?


PDF Expert Blog - embedded fonts and PDF mass printing application

The problem with embedded fonts in PDF mass printing applications

PDF is more and more finding its way into mass printing applications. However, PDF spool files often ask too much from a print engine resulting in aborts or, even worse, incomplete prints which may not be noticed. What is special about PDF mass printing...