Empezando con pdf

Instalación o configuración

Para ver un pdf puede descargar Adobe Reader gratis . Puede crear archivos PDF mediante programación con la ayuda de, por ejemplo, usando iTextSharp, jsPDF o PDFSharp (hay otras bibliotecas disponibles)

Servidor PDFTK para manipulación de pdf

Instale el servidor PDFTK desde https://www.pdflabs.com/tools/pdftk-server/

PDFtk Server es una herramienta de línea de comandos que puede:

•    Merge PDF Documents or Collate PDF Page Scans
•    Split PDF Pages into a New Document
•    Rotate PDF Documents or Pages
•    Decrypt Input as Necessary (Password Required)
•    Encrypt Output as Desired
•    Fill PDF Forms with X/FDF Data and/or Flatten Forms
•    Generate FDF Data Stencils from PDF Forms
•    Apply a Background Watermark or a Foreground Stamp
•    Report PDF Metrics, Bookmarks and Metadata
•    Add/Update PDF Bookmarks or Metadata
•    Attach Files to PDF Pages or the PDF Document
•    Unpack PDF Attachments
•    Burst a PDF Document into Single Pages
•    Uncompress and Re-Compress Page Streams
•    Repair Corrupted PDF (Where Possible)

PDFtk Server no requiere Adobe Acrobat o Reader, y se ejecuta en Windows, Mac OS X y Linux.

Intercalar páginas escaneadas

pdftk A=even.pdf B=odd.pdf shuffle A B output collated.pdf

o si odd.pdf está en orden inverso:

pdftk A=even.pdf B=odd.pdf shuffle A Bend-1 output collated.pdf

Descifrar un PDF

pdftk secured.pdf input_pw foopass output unsecured.pdf

Cifrar un PDF con una potencia de 128 bits (valor predeterminado), retener todos los permisos (valor predeterminado)

pdftk 1.pdf output 1.128.pdf owner_pw foopass

Igual que arriba, excepto que también se debe usar la contraseña baz para abrir el PDF de salida

pdftk 1.pdf output 1.128.pdf owner_pw foo user_pw baz

Igual que arriba, excepto que se permite la impresión (una vez que el PDF está abierto)

pdftk 1.pdf output 1.128.pdf owner_pw foo user_pw baz allow printing

Unir in1.pdf e in2.pdf en un nuevo PDF, out1.pdf

pdftk in1.pdf in2.pdf cat output out1.pdf

o (usando manijas):

pdftk A=in1.pdf B=in2.pdf cat A B output out1.pdf

o (usando comodines):

pdftk *.pdf cat output combined.pdf

Elimine la página 13 de in1.pdf para crear out1.pdf

pdftk in.pdf cat 1-12 14-end output out1.pdf

o:

pdftk A=in1.pdf cat A1-12 A14-end output out1.pdf

Ejemplo de código de pdfsharp.net

Fuente del código Ver el resultado aquí

using System;
using System.Diagnostics;
using System.IO;
using PdfSharp;
using PdfSharp.Drawing;
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
 
namespace HelloWorld
{
  /// <summary>
  /// This sample is the obligatory Hello World program.
  /// </summary>
  class Program
  {
    static void Main(string[] args)
    {
      // Create a new PDF document
      PdfDocument document = new PdfDocument();
      document.Info.Title = "Created with PDFsharp";
 
      // Create an empty page
      PdfPage page = document.AddPage();
 
      // Get an XGraphics object for drawing
      XGraphics gfx = XGraphics.FromPdfPage(page);
 
      // Create a font
      XFont font = new XFont("Verdana", 20, XFontStyle.BoldItalic);
 
      // Draw the text
      gfx.DrawString("Hello, World!", font, XBrushes.Black,
        new XRect(0, 0, page.Width, page.Height),
        XStringFormats.Center);
 
      // Save the document...
      const string filename = "HelloWorld.pdf";
      document.Save(filename);
      // ...and start a viewer.
      Process.Start(filename);
    }
  }
}