Produkt-Info


Überschau

Lizenzierung

FAQ

Foren

Beispiele

History


Download

Testversion

On-line manual

Meinungen


Been a self employed software engineer myself, i cannot tell you enough how i appreciate your professionalism and your work.

Keep up this more than excellent work, i hope every potential customer really gives you the credits you deserve and quickly becomes a new, very satified customer. It is the best investment for their money they can make and never ever regret it.

Yannis Sferopoulos
Opendata Ltd





VintaSoftPDF.NET Plug-in - FAQ

Allgemeine Fragen:

 

Distribution:

 

PDF:

 

Programmierung:

 

 

Für welche Zwecke kann ich VintaSoftPDF.NET Plug-in nutzen?

Sie können es als Plug-in für VintaSoftImaging.NET SDK nutzen und das erlaubt Ihnen anzeigen, render, generieren, konvertieren, annotieren, drucken, speichern, manipulieren und bearbeiten Seiten von PDF-Datei.

 

 

Was beinhaltet die Bibliothek?

Die Bibliothek beinhaltet:

  • Vintasoft.PDF.dll Datei - eine 100% .NET-komponente
  • Dokumentation in CHM format (VintaSoft.Imaging.chm Datei)
  • Beispiele für MS Visual Basic.NET, MS Visual C#, ASP.NET
  • Demos (Dateien in Bin\v2.0 Verzeichnis)

 

 

In welchen Programmiersprachen kann ich die Bibliothek nutzen?

Mit der Entwickler-Lizenz oder der Site-Lizenz können sie die Komponente nutzen in:

  • Microsoft Visual Studio .NET : Visual Basic, Visual C#, Visual C++, Visual J#
  • Borland Delphi 8.0, Borland C# Builder, Borland C++ BuilderX
  • anderen Sprachen, die kompatibel sind mit .Net Framework.

Mit der Server-Lizenz können sie die Komponente nutzen in:

  • Intranet / internet Programmen auf Server-Seite (ASP.NET oder PHP)

 

 

Welche Beschränkungen hat die unregistrierte Version der Komponente?

Unregistrierte Version hat folgende Beschränkungen:

  • NAG Bildschirm
  • Wasserzeichen
  • Änderung einiger PDF-Datei Tags ausgeschaltet

Alle diese Beschränkungen sind in der registrierten Version der Bibliothek gelöscht.

 

 

Ich habe eine Frage oder Problem. Was kann ich tun?

Die Antworten auf die meisten Fragen stehen bestimmt in der Dokumentation zur Komponente oder in den FAQ. Wenn Sie können nicht antwort zu Ihre Frage finden, dann schreiben Sie bitte an den technischen Support.

 

 

Welche Dateien muss ich in das Distributionpaket meines Programms einbinden?

Sie sollen VintaSoft.Imaging.dll und Vintasoft.PDF.dll in das Distributionpaket Ihres Programms einbinden. Diese Dateien müssen im selben Verzeichnis wie die Dateien deren auf sie verweisen angebracht werden. Stellen Sie sicher, dass Version die Sie verbreiten ist eine die mit Ihre Programm kompiliert war.

 

 

Kann ich diese Komponente zusammen mit meiner Anwendung ohne Lizenzzahlungen verbreiten?

Ja, Sie können diese Komponente zusammen mit ihrer Anwendung verbreiten. Sie bezahlen nur für die primäre Registrierung. Die Site-Lizenz hat keine Beschränkungen zur Verbreitung. Die Entwickler-Lizenz hat Beschränkungen zur Verbreitung. Server-Lizenz Verbreitung ist nicht lizenzfrei. Bitte lesen Sie das Lizenzabkommen für ausführliche Informationen.

 

 

Ich kann nicht PDF-Datei mit Ihrer Bibliothek öffnen. Was soll ich tun?

Bitte senden Sie uns Ihre "schlechte" Bild. Wir werden es analysieren und unsere Lesung Algorithmus aktualisieren falls das Bild korrekt ist.

 

 

PDF-Dokument ist fehlerhaft angezeigt. Was soll ich tun?

Es ist möglich, dass während eine Seite erstellt wurde:

  • Fehler erscheint
  • Warnung angezeigt
  • Seite enthält nicht unterstützte Elemente.

Fehler (PDFRuntimeError): erscheint wenn es war ein Versuch nicht unterstützte Element zu zeichnen (z.B. JPEG2000-Bild) oder es ist ein interner Fehler in die Bibliothek. Fehler bei Zeichnungprozess von Seite Elemente zeigt, dass die Seite nicht korrekt erstellt wurde.

Warnung (PDFRuntimeWarning): erscheint, wenn es noch nicht unterstützte Farbkorrektur-Funktionen verwendet sind (z.B. ICCProfile). Die Warnung bedeutet, dass das Element wurde vollständig gezeichnet, aber diese Farbkorrektur-Funktion nicht anwendbar sei.

In die aktuelle Version der Bibliothek sind nicht unterstützt:

  • Schriftarts: MMType1; OpenType
  • Farbräume: CALGray; CALRGB; DeviceN; Lab;
  • Bilder-Formats: JPEG2000; Nicht-idexed JPEG das stützt sich auf CMYK-Farbraum; Bilder welche stützen sich auf CALGray, CALRGB, DeviceN, Lab Farbräume
  • ShadingPatterns: TensorProductPatchMesh; CoonsPatchMesh
  • Funktionen: PostScriptCalculator
  • Farbkorrektur: ICCProfile; Rendering Intents

Fehler und Warnungen können auch beim Speichern einer PDF/A Datei erscheinen.

Um herauszufinden, ob das Dokument korrekt gezeichnet war (sind es die nicht unterstützte Objekte oder Fehler erscheinen), es ist notwendig PDFDocument.RuntimeMessages Eigenschaft zu verwenden. Hier ist ein Codebeispiel der zeigt, wie kann man die Fehler / Warnungen in das Dokument zu berechnen:

[VB.NET]
Public Shared Sub TestDocument(ByVal fileName As String, ByRef errors As Integer, ByRef warnings As Integer)
    ' open document
    Dim document As New PdfDocument(fileName)
    errors = 0
    warnings = 0
    For i As Integer = 0 To document.Pages.Count - 1
        ' clear messages
        document.RuntimeMessages.Clear()
        ' renderer page
        Dim pageImage As VintasoftImage = document.Pages(i).Render()
        pageImage.Dispose()
        ' check messages
        For Each message As PdfRuntimeMessage In document.RuntimeMessages
            If TypeOf message Is PdfRuntimeWarning Then
                warnings += 1
            ElseIf TypeOf message Is PdfRuntimeError Then
                errors += 1
            End If
        Next
    Next
End Sub

[C#]
public static void TestDocument(string fileName, out int errors, out int warnings)
{
    // open document
    PdfDocument document = new PdfDocument(fileName);
    errors = 0;
    warnings = 0;
    for (int i = 0; i < document.Pages.Count; i++)
    {
        // clear messages
        document.RuntimeMessages.Clear();
        // render the page
        VintasoftImage pageImage = document.Pages[i].Render();
        pageImage.Dispose();
        // check messages
        foreach (PdfRuntimeMessage message in document.RuntimeMessages)
        {
            if (message is PdfRuntimeWarning)
                warnings++;
            else if (message is PdfRuntimeError)
                errors++;
        }
    }
}

Wenn das Dokument mit dem Fehler erstellt wurde, aber die Bibliothek hat nichts über diesen Fehler angemeldet, oder wenn ein Fehler erscheint und es ist nicht im Zusammenhang mit nicht unterstützte Elemente - schicken Sie Ihre PDF-Dokument zu VintaSoft Support-Team für weitere Überprüfung und Fehlersuche.

 

 

Wie kann ich PDF-Dokument packen?

Packung (PDFDocument.Pack) erlaubt:

  • entfernen aus Dokument unbrauchbare Objekten
  • wechseln die Version der PDF-Datei (z.B. Konvertierung zu PDF/A)
  • zu angeben ob verwenden oder nicht Kompression von Cross-Reference-Tabellen (ab Version 1.5 der PDF-Spezifikation)
  • zu angeben ob verwenden oder nicht Text-Filter für binäre Daten

Verwendung von PDFDocument.Optimize Funktionen erlaubt einen Weg der Komprimierung für unterschiedliche Objekte anzusetzen: Farbbilder, Schwarz-Weiß-Bilder, Daten. Vor dem Ende der Arbeit die Optimize-Funktion ruft die Pack-Funktion.

Hier ist ein Beispiel welcher zeigt, wie kann man PDF-Datei packen (optimize=false), oder wie PDF-Datei packen und dann alle Farb-Bilder zu JPEG konvertieren (optimize=true):

[VB.NET]
Public Shared Sub PackPdf(ByVal pdfFileName As String, ByVal optimize As Boolean)
    ' open PDF document to Read/Write
    Dim pdfDocument As New PdfDocument(pdfFileName)
    ' create PdfFormat - 1.6 format, with compressed coross-reference table
    Dim format As New PdfFormat("1.6", True, True)
    If optimize Then
        ' set JPEG Quality to 80
        PdfCompressionSettings.DefaultSettings.JpegQuality = 80
        ' create optimize settings
        ' compression for Color images - JPEG
        ' compression for B/W images - not change
        Dim optimizeSettings As New PdfOptimizeSettings(PdfCompression.Jpeg, PdfCompression.Undefined, PdfCompression.Undefined)
        ' compression for Data - not change
        ' optimize and Pack document
        pdfDocument.Optimize(format, optimizeSettings)
    Else
        ' pack document
        pdfDocument.Pack(format)
    End If
    ' free resources
    pdfDocument.Dispose()
End Sub

[C#]
public static void PackPdf(string pdfFileName, bool optimize)
{
    // open PDF document to Read/Write
    PdfDocument pdfDoument = new PdfDocument(pdfFileName);
    // create PdfFormat - 1.6 format, with compressed cross-reference table
    PdfFormat format = new PdfFormat("1.6", true, true);
    if (optimize)
    {
        // set JPEG Quality to 80
        PdfCompressionSettings.DefaultSettings.JpegQuality = 80;
        // create optimize settings
        PdfOptimizeSettings optimizeSettings = new PdfOptimizeSettings(
            PdfCompression.Jpeg,       //compression for Color images - JPEG
            PdfCompression.Undefined,  //compression for B/W images - not changed
            PdfCompression.Undefined); //compression for Data - not changed
        // optimize and Pack document
        pdfDoument.Optimize(format, optimizeSettings);
    }
    else
    {
        // pack document
        pdfDoument.Pack(format);
    }
    // free resources
    pdfDoument.Dispose();
}

 

 

Was soll ich tun, wenn es ist keine Schriftart gefunden?

Font Suchalgorithmus ist standardmäßig wie folgt: die Suche beginnt in dem Verzeichnis $ASSEMBLY_DIRECTORY$\Fonts\, wenn da ist keine Schriftart gefunden, es fängt an die installierte Systemschriftarten zu suchen (Informationen aus der Registry).

Wenn die Schriftart nicht gefunden wurde, sollten Sie es in das Verzeichnis $ASSEMBLY_DIRECTORY$\Fonts\ oder in das System installieren. Sie müssen auch berücksichtigen, dass die Suche sucht der Schriftart gemeinsame Name, nicht seine PostScript-Name.

Wenn Sie die Schriftart Suchalgorithmus neu definieren wollen, dann müssen Sie eine Verwirklichung der IfontProgramsController Interface oder ein Nachfolger aus jeder Verwirklichung dieser Interface zu schaffen (SystemFontProgramsController, UserAndSystemFontProgramsController). Nachdem, Sie müssen initialisieren PDFDocument.FontProgramsController Eigenschaft mit Verwendung einer Exemplar der Klasse die Sie erstellt haben.

 

 

Wie kann ich PDF zu TIFF konvertieren?

Dieser Beispiel zeigt, wie kann man PDF-Dokument zu TIFF-Datei konvertieren, und benutzen dafür Bild Sammlung und TiffEncoder:

[VB.NET]
Public Shared Sub ConvertPdfToTiff_1(ByVal pdfFileName As String, ByVal tiffFileName As String)
    ' create ImageCollection
    Dim imageCollection As New ImageCollection()
    ' add PDF document to collecion
    imageCollection.Add(pdfFileName)
    ' create TiffEncoder
    Dim tiffEncoder As New TiffEncoder(True)
    ' set TIFF compression to Zip
    tiffEncoder.Compression = TiffCompression.Zip
    ' save pages use TIFF encoder
    imageCollection.SaveSync(tiffFileName, tiffEncoder)
    ' free resources
    tiffEncoder.Dispose()
    imageCollection.Dispose()
End Sub

[C#]
public static void ConvertPdfToTiff_1(string pdfFileName, string tiffFileName)
{
    // create ImageCollection
    ImageCollection imageCollection = new ImageCollection();
    // add PDF document to collecion
    imageCollection.Add(pdfFileName);
    // create TiffEncoder
    TiffEncoder tiffEncoder = new TiffEncoder(true);
    // set TIFF compression to Zip
    tiffEncoder.Compression = TiffCompression.Zip;
    // save pages using TIFF encoder
    imageCollection.SaveSync(tiffFileName, tiffEncoder);
    // free resources
    tiffEncoder.Dispose();
    imageCollection.Dispose();
}

Dieser Beispiel zeigt, wie kann man PDF-Dokument zu TIFF-Datei konvertieren, und benutzen dafür PdfDocument und TiffFile:

[VB.NET]
Public Shared Sub ConvertPdfToTiff_2(ByVal pdfFileName As String, ByVal tiffFileName As String)
    ' open PDF document
    Dim pdfDocument As New PdfDocument(pdfFileName)
    ' create TIFF File
    Dim tiffFile As New TiffFile(tiffFileName, True)
    ' set TIFF compression to Zip
    tiffFile.Compression = TiffCompression.Zip
    ' foreach PDF pages
    For i As Integer = 0 To pdfDocument.Pages.Count - 1
        ' in TiffFile add rendered PDF page
        tiffFile.Pages.Add(pdfDocument.Pages(i).Render())
    Next
    ' free resources
    pdfDocument.Dispose()
    tiffFile.Dispose()
End Sub

[C#]
public static void ConvertPdfToTiff_2(string pdfFileName, string tiffFileName)
{
    // open PDF document
    PdfDocument pdfDocument = new PdfDocument(pdfFileName);
    // create TIFF File
    TiffFile tiffFile = new TiffFile(tiffFileName, true);
    // set TIFF compression to Zip
    tiffFile.Compression = TiffCompression.Zip;
    // for each PDF pages
    for (int i = 0; i < pdfDocument.Pages.Count; i++)
    {
        // add rendered PDF page to TiffFile
        tiffFile.Pages.Add(pdfDocument.Pages[i].Render());
    }
    // free resources
    pdfDocument.Dispose();
    tiffFile.Dispose();
}

 

 

Wie kann ich PDF zu TIFF mit definierten Auflösung(dpi) konvertieren?

Dieser Beispiel zeigt, wie kann man PDF-Dokument zu TIFF-Datei konvertieren (mit definierter Auflösung und gegebenen Zeichnung Parameter), und benutzen dafür Bild Sammlung und PdfEncoder:

[VB.NET]
Public Shared Sub ConvertPdfToTiffDPI_1(ByVal pdfFileName As String, ByVal tiffFileName As String, ByVal dpi As Single)
    ' create ImageCollection    
    Dim imageCollection As New ImageCollection()
    ' set rendering settings
    imageCollection.RenderingSettings = New RenderingSettings(dpi, dpi,_
      System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear,_
      System.Drawing.Drawing2D.SmoothingMode.AntiAlias)
    ' add PDF document to collecion
    imageCollection.Add(pdfFileName)
    ' create TiffEncoder
    Dim tiffEncoder As New TiffEncoder(True)
    ' set TIFF compression to Zip
    tiffEncoder.Compression = TiffCompression.Zip
    ' save pages use TIFF encoder
    imageCollection.SaveSync(tiffFileName, tiffEncoder)
    ' free resources
    tiffEncoder.Dispose()
    imageCollection.Dispose()
End Sub

[C#]
public static void ConvertPdfToTiffDPI_1(string pdfFileName, string tiffFileName, float dpi)
{
    // create ImageCollection  
    ImageCollection imageCollection = new ImageCollection();
    // set rendering settings
    imageCollection.RenderingSettings = new RenderingSettings(
        dpi, 
        dpi, 
        System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear, 
        System.Drawing.Drawing2D.SmoothingMode.AntiAlias);
    // add PDF document to collecion
    imageCollection.Add(pdfFileName);
    // create TiffEncoder
    TiffEncoder tiffEncoder = new TiffEncoder(true);
    // set TIFF compression to Zip
    tiffEncoder.Compression = TiffCompression.Zip;
    // save pages using TIFF encoder
    imageCollection.SaveSync(tiffFileName, tiffEncoder);
    // free resources
    tiffEncoder.Dispose();
    imageCollection.Dispose();
}

Dieser Beispiel zeigt, wie kann man PDF-Dokument zu TIFF-Datei konvertieren (mit definierter Auflösung und gegebenen Zeichnung Parameter), und benutzen dafür PdfDocument und TiffFile:

[VB.NET]
Public Shared Sub ConvertPdfToTiffDPI_2(ByVal pdfFileName As String, ByVal tiffFileName As String, ByVal dpi As Single)
    ' open PDF document
    Dim pdfDocument As New PdfDocument(pdfFileName)
    ' set resolution
    pdfDocument.RenderingSettings.Resolution = New Resolution(dpi, dpi)
    ' set rendering mode - optimal balance between rendering speed and rendering quality.
    pdfDocument.RenderingSettings.RenderingMode = PdfRenderingMode.Normal
    ' create TIFF File
    Dim tiffFile As New TiffFile(tiffFileName, True)
    ' set TIFF compression to Zip
    tiffFile.Compression = TiffCompression.Zip
    ' foreach PDF pages
    For i As Integer = 0 To pdfDocument.Pages.Count - 1
        ' in TiffFile add rendered PDF page
        tiffFile.Pages.Add(pdfDocument.Pages(i).Render())
    Next
    ' free resources
    pdfDocument.Dispose()
    tiffFile.Dispose()
End Sub

[C#]
public static void ConvertPdfToTiffDPI_2(string pdfFileName, string tiffFileName, float dpi)
{
    // open PDF document
    PdfDocument pdfDocument = new PdfDocument(pdfFileName);
    // set resolution
    pdfDocument.RenderingSettings.Resolution = new Resolution(dpi, dpi);
    // set rendering mode - optimal balance between rendering speed and rendering quality.
    pdfDocument.RenderingSettings.RenderingMode = PdfRenderingMode.Normal;
    // create TIFF File
    TiffFile tiffFile = new TiffFile(tiffFileName, true);
    // set TIFF compression to Zip
    tiffFile.Compression = TiffCompression.Zip;
    // for each PDF pages
    for (int i = 0; i < pdfDocument.Pages.Count; i++)
    {
        // add rendered PDF page to TiffFile
        tiffFile.Pages.Add(pdfDocument.Pages[i].Render());
    }
    // free resources
    pdfDocument.Dispose();
    tiffFile.Dispose();
}

 

 

Wie kann ich TIFF zu PDF konvertieren?

Dieser Beispiel zeigt, wie kann man TIFF-Datei zu PDF-Dokument konvertieren, und benutzen dafür Bild Sammlung und PdfEncoder:

[VB.NET]
Public Shared Sub ConvertTiffToPdf_1(ByVal tiffFileName As String, ByVal pdfFileName As String)
    ' create ImageCollection
    Dim imageCollection As New ImageCollection()
    ' add PDF document to collecion
    imageCollection.Add(tiffFileName)
    ' create TiffEncoder
    Dim pdfEncoder As New PdfEncoder(True)
    ' set PDF compression to Zip
    pdfEncoder.Settings.Compression = PdfImageCompression.Zip
    ' save pages use PDF encoder
    imageCollection.SaveSync(pdfFileName, pdfEncoder)
    ' free resources
    pdfEncoder.Dispose()
    imageCollection.Dispose()
End Sub

[C#]
public static void ConvertTiffToPdf_1(string tiffFileName, string pdfFileName)
{
    // create ImageCollection
    ImageCollection imageCollection = new ImageCollection();
    // add TIFF file to collecion
    imageCollection.Add(tiffFileName);
    // create TiffEncoder
    PdfEncoder pdfEncoder = new PdfEncoder(true);
    // set PDF compression to Zip
    pdfEncoder.Compression = PdfImageCompression.Zip;
    // save pages using PDF encoder
    imageCollection.SaveSync(pdfFileName, pdfEncoder);
    // free resources
    pdfEncoder.Dispose();
    imageCollection.Dispose();
}

Dieser Beispiel zeigt, wie kann man TIFF-Datei zu PDF-Dokument konvertieren, und benutzen dafür PdfDocument und TiffFile:

[VB.NET]
Public Shared Sub ConvertTiffToPdf_2(ByVal tiffFileName As String, ByVal pdfFileName As String)
    ' create TIFF File
    Dim tiffFile As New TiffFile(tiffFileName)
    ' create new PdfDocument, version 1.4
    Dim pdfDocument As New PdfDocument(pdfFileName, FileMode.Create, FileAccess.Write, PdfFormat.Pdf_14)
    ' foreach TIFF pages
    For i As Integer = 0 To tiffFile.Pages.Count - 1
        ' add TIFF page to PDF document
        pdfDocument.Pages.Add(tiffFile.Pages(i).GetImage().GetImage(), PdfCompression.Zip)
        ' drop changes to disk
        pdfDocument.SaveChanges()
    Next
    ' free resources
    pdfDocument.Dispose()
    tiffFile.Dispose()
End Sub

[C#]
public static void ConvertTiffToPdf_2(string tiffFileName, string pdfFileName)
{
    // create TIFF File
    TiffFile tiffFile = new TiffFile(tiffFileName);
    // create new PdfDocument, version 1.4
    PdfDocument pdfDocument = new PdfDocument(
        pdfFileName, 
        FileMode.Create, 
        FileAccess.Write, 
        PdfFormat.Pdf_14);
    // for each TIFF page
    for (int i = 0; i < tiffFile.Pages.Count; i++)
    {
        // add TIFF page to PDF document
        pdfDocument.Pages.Add(tiffFile.Pages[i].GetImage(), PdfCompression.Zip);
        // drop changes to disk
        pdfDocument.SaveChanges();
    }
    // free resources
    pdfDocument.Dispose();
    tiffFile.Dispose();
}

 

 

Wie kann ich TIFF zu PDF/A konvertieren?

Dieser Beispiel zeigt, wie kann man TIFF-Datei zu PDF/A-Dokument konvertieren, und benutzen dafür Bild Sammlung und PdfEncoder:

[VB.NET]
Public Shared Sub ConvertTiffToPdfA_1(ByVal tiffFileName As String, ByVal pdfFileName As String)
    ' create ImageCollection
    Dim imageCollection As New ImageCollection()
    ' add PDF document to collecion
    imageCollection.Add(pdfFileName)
    ' create TiffEncoder
    Dim pdfEncoder As New PdfEncoder(True)
    ' set PDF compression to Zip
    pdfEncoder.Settings.Compression = PdfImageCompression.Zip
    ' set PDF/A compatible
    pdfEncoder.Settings.PdfACompatible = True
    ' save pages use PDF encoder
    imageCollection.SaveSync(tiffFileName, pdfEncoder)
    ' free resources
    pdfEncoder.Dispose()
    imageCollection.Dispose()
End Sub

[C#]
public static void ConvertTiffToPdfA_1(string tiffFileName, string pdfFileName)
{
    // create ImageCollection
    ImageCollection imageCollection = new ImageCollection();
    // add PDF document to collection
    imageCollection.Add(pdfFileName);
    // create TiffEncoder
    PdfEncoder pdfEncoder = new PdfEncoder(true);
    // set PDF compression to Zip
    pdfEncoder.Compression = PdfImageCompression.Zip;
    // set PDF/A compatible
    pdfEncoder.PdfACompatible = true;
    // save pages using PDF encoder
    imageCollection.SaveSync(tiffFileName, pdfEncoder);
    // free resources
    pdfEncoder.Dispose();
    imageCollection.Dispose();
}

Dieser Beispiel zeigt, wie kann man TIFF-Datei zu PDF/A-Dokument konvertieren, und benutzen dafür PdfDocument und TiffFile:

[VB.NET]
Public Shared Sub ConvertTiffToPdfA_2(ByVal tiffFileName As String, ByVal pdfFileName As String)
    ' create TIFF File
    Dim tiffFile As New TiffFile(tiffFileName)
    ' create new PDF/A compatible PdfDocument
    Dim pdfDocument As New PdfDocument(pdfFileName, FileMode.Create, FileAccess.Write, PdfFormat.Pdf_A)
    ' foreach TIFF pages
    For i As Integer = 0 To tiffFile.Pages.Count - 1
        ' add TIFF page to PDF document
        pdfDocument.Pages.Add(tiffFile.Pages(i).GetImage().GetImage(), PdfCompression.Zip)
        ' drop changes to disk
        pdfDocument.SaveChanges()
    Next
    ' free resources
    pdfDocument.Dispose()
    tiffFile.Dispose()
End Sub

[C#]
public static void ConvertTiffToPdfA_2(string tiffFileName, string pdfFileName)
{
    // create TIFF File
    TiffFile tiffFile = new TiffFile(tiffFileName);
    // create new PDF/A compatible PdfDocument
    PdfDocument pdfDoument = new PdfDocument(
        pdfFileName, 
        FileMode.Create, 
        FileAccess.Write, 
        PdfFormat.Pdf_A);
    // for each TIFF page
    for (int i = 0; i < tiffFile.Pages.Count; i++)
    {
        // add TIFF page to PDF document
        pdfDocument.Pages.Add(tiffFile.Pages[i].GetImage(), PdfCompression.Zip);
        // drop changes to disk
        pdfDocument.SaveChanges();
    }
    // free resources
    pdfDocument.Dispose();
    tiffFile.Dispose();
}