3-Heights™ PDF Toolbox – composant développement pour le traitement des PDF

3-Heights™ PDF Toolbox est un composant hautement performant et indépendant de la plate-forme pour créer et assembler des documents PDF/A conformes.

Assembler

 Assembler des documents PDF à partir de sources diverses

Enrichir

 Enrichir des documents PDF avec des informations supplémentaires, comme estampillage

Créer

 Créer de nouvelles pages avec n’importe quel contenu et assembler avec vos fichier PDF

PDF Toolbox - Manipulation PDF avancée - Modifiez et composez vos documents PDF

PDF toolbox - fonctions

Assemblage de documents

  • Copie de pages de documents PDF existants
  • Copie d’annotations / de commentaires, de champs de formulaire, de liens, d’informations relatives à la structure, de signets, d’étiquettes, de marqueurs de saut
  • Dissolution d’annotations, de champs de formulaire, de signatures
  • Optimisation des ressources
  • Découpe et rotation des pages
  • Libre composition de contenus, superpositions, sous-couches, cachets, transformations
  • Cryptage: Mot de passe utilisateur, Mot de passe propriétaire, Permissions
  • Copier et modifier les métadonnées d'un document
  • Copier et modifier les métadonnées de page

Génération de contenu

  • Création de nouveaux contenus PDF en partant de zéro
  • Ajout de contenu à des pages existantes
  • Coleurs
  • RGB, CMYK ou nuances de gris
  • Profils de couleurs ICC
  • Transparence: Mode Alpha et Blend 

Paths

  • Lignes simples et multi-segments
  • Rectangle, Cercle, Courbes de Bézier, Ellipse, Arc, Tarte

Texte

  • Taille de police caractères, espacement des caractères, espacement des mots
  • Permet une mise en page simple du texte
  • Polices caractères PDF standard, polices caractères installées
  • Caractères Unicode
  • Course du texte: Largeur de ligne, jointure de ligne et tirets
  • Remplir et recadrer du texte, texte invisible
  • Utiliser le texte comme chemin de détourage

Images

  • Bi-level: CCITT G3, G3 2D et G4, Flate, LZW, Packbits, non compressé
  • 4 bits et 8 nuances de gris: Flat, LZW, Packbits, JPEG et JPEG-6 (8 bits seulement), non compressé
  • RGB: Flate, JPEG et JPEG-6, LZW, Packbits, non compressé

Transformations

  • Traduction
  • Mise à l'échelle
  • Déformer (horizontale, verticale)
  • Rotation

Extraction

  • Saisie d'information de pièce:: Titre, Auteur, Auteur, Sujet, Mots-clés, Créateur, Producteur, Date de création, Date de modification
  • Métadonnées du document XMP
  • Page Métadonnées XMP
  • Champs de signature: Nom, Lieu, Motif, Coordonnées, Date, Visibilité

Conformité

  • ISO 19005-1 (PDF/A-1)
  • ISO 19005-2 (PDF/A-2)
  • ISO 19885-3 (PDF/A-3)
  • ISO 32000 (PDF 1.7)
Powered by 3-Heights™ Technology and PDF/A compliant

Formats supportée

Formats d'entrée

  • 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)

Formats de polices supportés

  • Type1
  • TrueType
  • OpenType
  • OpenType(CFF)

Formats de sortie

  • PDF
  • PDF/A

Domaines d’application - éditer et composer des documents PDF

Création d’un PDF

Création programmatique de n’importe quels documents PDF/A, dont les contenus peuvent provenir de sources quelconques, comme par exemple une banque de données ou un formulaire de site Web.

Personnalisation

Les documents PDF sont utilisés pour la distribution de livres numériques, pour la réalisation de factures, contrats et conditions notamment dans les propositions d’assurance. Ils présentent tous point commun: le destinataire doit compléter le document avec des informations spécifiques.

Etablissement automatisé de rapports

De grandes quantités d’informations sont stockées dans les banques de données et systèmes DMS. Moyennant la PDF Prep Tool Suite, il est possible de recevoir ces informations et d’en faire des documents PDF distribuables et standardisés, ce qui permet leur distribution dans des infrastructures dotées de technologies et de systèmes d’exploitation les plus divers.

Autres domaines d’application

  • Création de documents personnalisés tels que citations, politiques, publipostage, etc.
  • Production de masse des factures, rapports, etc.
  • Création de fichiers PDF « on-the-fly » dans les applications de serveur Web
  • "Enregistrer au format PDF/A" fonction dans les programmes d'application
  • Importer des images et du texte dans documents PDF/A

#Exemple 1 - Ajouter des numéros de page à un document PDF

Copiez un document PDF dans un nouveau document et composez le numéro de page au bas de chaque page.

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...