Opinions


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

Questions d'ordre général:

 

Redistribution:

 

Ventes:

 

PDF:

 

Programmation:

 

 

Pour quels buts je peux utiliser la plug-in VintaSoftPDF.NET Plug-in?

VintaSoftPDF.NET est un Plug-in de la bibliothèque VintaSoftImaging.NET et peut être utilisé pour la visualisation, le rendering, la création, la conversion, l’annotation, l’impression, la sauvegarde, la manipulation et le traitement des pages de fichier du format PDF.

 

 

Que la plug-in comprend-elle?

La bibliothèque comprend:

  • Vintasoft.PDF.dll composant - le composant .NET 100% compatible
  • La documentation dans le format MS Help Workshop (le fichier VintaSoft.Imaging.chm)
  • Les exemples pour MS Visual Basic.NET, MS Visual C#, ASP.NET (le catalogue Examples)
  • Demo applications (fichiers de Bin\v2.0)

 

 

Dans quels langages de programmation je peux utiliser la plug-in?

La licence du développeur et la licence pour la société permettent utiliser composant à:

  • Microsoft Visual Studio .NET : Visual Basic, Visual C#, Visual C++, Visual J#
  • Borland Delphi 8.0, Borland C# Builder, Borland C++ BuilderX
  • N'importe quels langages de programmation et les applications compatibles avec la technologie .NET.

Licence pour serveur permet d’utiliser composant à:

  • ASP.NET dans la partie de serveur de l'application.

 

 

Quels restrictions existe dans la version non enregistrée de la bibliothèque?

La version non enregistrée a des limitations suivantes en utilisation:

  • fenêtre pop-up "Sur l’Iinscription"
  • filigranes
  • la possibilité de changer certains tag du fichier PDF est désactivée
  • la possibilité de création de la protection de 128-bits est desinstallée.

Tous ces restrictions sont absentes dans la version enregistrée de la plug-in.

 

 

Je n'ai pas trouvé la réponse à ma question. Qu’est-ce que je dois faire?

L'information sur la plupart des questions peut être trouvée dans la documentation sur le composant ou dans ce FAQ. Si vous n'avez pas trouvé la réponse à votre question, alors écrivez la lettre au service de la maintenance.

 

 

Quels fichiers je dois incorparer dans le distributif de mon logiciel?

Il vous faut d’inclure deux fichiers: VintaSoft.Imaging.dll et Vintasoft.PDF.dll. Ces fichiers doivent être emplacés dans le même répertoire que l’assemblage qui s’en réfère. Assurez-vous que la version que vous distribuez est une version avec laquelle votre assemblage compile.

 

 

Est-ce que je peux diffuser le composant VintaSoftPDF.NET avec mon application?

Oui, vous pouvez diffuser le composant avec votre application. Vous ne payez que pour l’enregistrement initial. La licence pour la société n'ont pas les restrictions de la diffusion. La licence du développeur a certains restrictions de la diffusion. La diffusion de licence du serveur n'est pas libre de droits. Consultez s'il vous plaît l'accord de licence.

 

 

Que dois-je faire si la distribution de mon logiciel créé sur la base d’une licence pour développeur peut franchir la barre de 100 copies l'année en cours?

Si vous possédez une licence pour développeur et la distribution de votre logiciel peut franchir la barre de 100 copies l'année en cours, il est necessaire de vous adresser au Bureau des ventes de «VintaSoft» où on vous offrira la possibilité d`upgrade de votre licence vers une licence d`organisation au rabais de 30% ou proposera d`acheter une licence appositive pour développeur.

 

 

Quelles sont les différences entre la licence pour développeur et la licence pour l'organisation?

  • La licence pour développeur doit être employée pour le développement de logiciels par un développeur dont le nom est indiqué sur les données de la licence.
  • La licence pour organisation doit être employée pour le développement de logiciels par n'importe quel développeur qui travaillerait dans la companie dont le raison sociale est indiqué sur les données de la licence.
  • La licence pour développeur peut être employée pour le développement de logiciels sur n'importe quel PC à n'importe quelle adresse physique.
  • La licence pour organisation doit être employée pour le développement de logiciels sur n'importe quel PC situé à une seule adresse (dans un seul bureau).
  • La licence pour développeur permet de distribuer des logiciels comportant les fichiers SDK destinés à la distribution limitée de 100 copies dans l'année.
  • La licence pour société permet la distribution illimitée de logiciels comportant les fichiers SDK destinés à la distribution.

 

 

Y-a-t-il une différence si j’utilise mon application sur l'ordinateur personnel et le serveur?

Oui. Veuillez consulter la rubrique "Deploying" dans la documentation de produit pour comprendre la différence.

Termes : Desktop PC - Système d'exploitation Windows XP, Vista, 7 est installé. Server - Système d'exploitation Windows Server 2000, 2003, 2008 est installé.

 

 

Je n'arrive pas à ouvrir le fichier PDF en utilisant votre bibliothèque. Qu'est-ce que je dois faire?

S'il vous plaît, envoyez-nous cette image que vous n'avez pas réussi à ouvrir. Nous l'analyser et mettre à jour notre algorithme si l'image est correcte.

 

 

Document PDF est affiché de manière incorrecte. Que faire?

Il est possible pendant la génération de la page:

  • une erreur
  • une notification a parut
  • page contient des éléments pas supportés

Erreur (PDFRuntimeError) – paraît quand il y a eu une tentative de dessiner l'élément de bibliothèque non pris en support (par exemple, la tentative de dessiner une image du format JPEG2000), ou une erreur s'est passée dans la bibliothèque même. La présence d'erreurs pendant le dessin de la page indique que la page a été dessinée pas correctement.

Avertissement (PDFRuntimeWarning) - se produit quand un élément est dessiné en totalité, mais les fonctions de correction de couleur qui ne sont pas pris en charge par la bibliothèque ne sont pas appliquées (par exemple ICCProfile).

Dans la version actuelle de la bibliothèque n'est pas pris en charge:

  • Fonts: MMType1; OpenType
  • ShadingPatterns: TensorProductPatchMesh; CoonsPatchMesh
  • ColorCorrection: ICCProfile; Rendering Intents

Erreurs et avertissements peut également se produire pendant l'opération de sauvegarde d’un fichier au format PDF/A.

Pour savoir si le document est dessiné correctement (est-ce qu’il y a des éléments non pris en charge ou des erreurs se sont produites) il est nécessaire de se tourner à la propriété PDFDocument.RuntimeMessages. Voici un exemple de code pour calculer les erreurs/avertissements dans le document:

[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++;
        }
    }
}

Si le document est tracé avec une erreur, mais la bibliothèque n'a pas signaler une erreur, ou si une erreur n'est pas liée avec des éléments non pris en charge - envoyer votre document PDF dans le service de soutien VintaSoft pour l'étude et la récupération de cette erreur.

 

 

Comment emballer le document PDF?

Emballage (PDFDocument.Pack) permet:

  • supprimer les objets non utilisés du document
  • changer la version de fichier PDF (par exemple, convertir au format PDF/A)
  • indiquer utiliser ou non la compression des tables de Cross-Reference (à partir de version de la spécification PDF 1.5)
  • indiquer utiliser ou non des filtres de texte pour les données binaires

Utilisation de la fonction de PDFDocument.Optimize vous permet de définir la méthode de compression pour les différents objets: des images en couleur, des images en noir et blanc, les données. Avant la fin du travail la fonction Optimize appelle la fonction d’emballage.

Voici un exemple montrant comment emballer le fichier PDF (optimize=false), ou comment emballer le fichier PDF et en même temps faire la conversion de toutes les images en couleur en format JPEG (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();
}

 

 

Que faire si la police de caractères n'est pas trouvée?

Par défaut, l'algorithme de recherche de la police de caractères est suivant: la recherche de la police de caractères commence dans le répertoire $ASSEMBLY_DIRECTORY$\Fonts\, si elle n'y est pas trouvée, alors il y a une recherche parmi les polices de caractères installées dans le système (l’information provenant du registre).

Autrement dit, si la police de caractères n’était pas trouvée il est nécessaire de la placer dans le répertoire $ASSEMBLY_DIRECTORY$\Fonts\ ou installer dans le système. Il est nécessaire aussi prendre en compte que la recherche de la police de caractères par défaut se passe par leurs noms communs, mais non pas par les noms dans le style de PostScript.

Si vous voulez changer l'algorithme de la recherche des polices de caractères, vous devez créer la réalisation de l’interface IfontProgramsController, ou un héritier de toute réalisation de cette interface (SystemFontProgramsController, UserAndSystemFontProgramsController). Ensuite, vous devez initialiser la propriété du PDFDocument.FontProgramsController par l’exemplaire de la classe que vous avez créée.

 

 

Comment convertir PDF au format TIFF?

Voici un exemple montrant comment convertir un document PDF en un fichier TIFF à l’aide de la collection d'images et de 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();
}

Voici un exemple montrant comment convertir le document PDF en un fichier TIFF en utilisant PDFDocument et 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();
}

 

 

Comment convertir PDF et TIFF en résolution définie(dpi)?

Voici un exemple montrant comment convertir le document PDF en un fichier TIFF (à la définition nécessaire et avec les paramètres donnés du rendering) en utilisant une collection d'images et 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();
}

Voici un exemple montrant comment convertir le document PDF en un fichier TIFF (à la définition nécessaire et avec les paramètres donnés du rendering) en utilisant PDFDocument et 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();
}

 

 

Comment faire pour convertir TIFF au format PDF?

Voici un exemple montrant comment convertir un fichier TIFF en document PDF, et utilisant une collection d'images et 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();
}

Voici un exemple montrant comment convertir un fichier TIFF en document PDF, et utilisant PDFDocument et TiffFile:

[VB.NET]
Public Shared Sub ConvertTiffToPdf_2(tiffFileName As String, pdfFileName As String)
    ' cache size, in bytes (10MB)
    Dim cacheSize As Integer = 10 * 1024 * 1024

    ' unsaved image data size
    Dim imageDataSize As Integer = 0

    ' 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)
    ' for each TIFF page
    For i As Integer = 0 To tiffFile.Pages.Count - 1
        ' add TIFF page to PDF document
        Dim newPage As PdfPage
        Using pageImage As VintasoftImage = tiffFile.Pages(i).GetImage()
            newPage = pdfDocument.Pages.Add(pageImage, PdfCompression.Zip)
        End Using

        ' increment image data size
        imageDataSize += newPage.ImagesSize
        
        ' drop changes to disk if need
        If imageDataSize > cacheSize Then
             pdfDocument.SaveChanges()
             imageDataSize = 0
        End If
    Next
    ' free resources
    pdfDocument.Dispose()
    tiffFile.Dispose()
End Sub

[C#]
public static void ConvertTiffToPdf_2(string tiffFileName, string pdfFileName)
{
    // cache size, in bytes (10MB)
    int cacheSize = 10 * 1024 * 1024;

    // unsaved image data size
    int imageDataSize = 0;
    
    // 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
        PdfPage newPage;
        using (VintasoftImage pageImage = tiffFile.Pages[i].GetImage())
            newPage = pdfDocument.Pages.Add(pageImage, PdfCompression.Zip);
        
        // increment image data size
        imageDataSize += newPage.ImagesSize;

        // drop changes to disk if need
        if (imageDataSize > cacheSize)
        {
            pdfDocument.SaveChanges();
            imageDataSize = 0;
        }
    }
    // free resources
    pdfDocument.Dispose();
    tiffFile.Dispose();
}

 

 

Comment convertir TIFF en PDF/A?

Voici un exemple montrant comment convertir un fichier Tiff en document PDF/A à l'aide d'une collection d'images et de 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();
}

Voici un exemple montrant comment convertir un fichier Tiff en document PDF/A à l'aide de PDFDocument et 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(), 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();
}

 

 

Comment extraire de texte d'une page PDF?

L'exemple:

[VB.NET]
Public Shared Function ExtractTextFromPdfPage(ByVal document As PdfDocument, _
                                              ByVal pageIndex As Integer) As String
    Return document.Pages(pageIndex).TextRegion.TextContent
End Function

[C#]
public static string ExtractTextFromPdfPage(PdfDocument document, int pageIndex)
{
    return document.Pages[pageIndex].TextRegion.TextContent;
}

 

 

Comment trouver de texte d'une page PDF?

L'exemple:

[VB.NET]
Public Shared Function FindTextOnPdfPage(ByVal document As PdfDocument, _
                                         ByVal pageIndex As Integer, _
                                         ByVal text As String) As TextRegion
    ' creates find options
    Dim findOptions As FindTextOptions = New FindTextOptions()
    ' non case sensitive text must be searched
    findOptions.MathCase = False
    ' find text
    Dim startIndex As Integer = 0
    Return document.Pages(pageIndex).TextRegion.FindText(text, startIndex, _
                                                               findOptions)
End Function

[C#]
public static TextRegion FindTextOnPdfPage(PdfDocument document, int pageIndex, 
                                                                   string text)
{
    // creates find options
    FindTextOptions findTextOptions = new FindTextOptions();
    // non case sensitive text must be searched
    findTextOptions.MathCase = false;
    // find text
    int startIndex = 0;
    return document.Pages[pageIndex].TextRegion.FindText(text, ref startIndex, 
                                                             findTextOptions);
}

 

 

Comment trouver et surligner de texte dans le document PDF?

L'exemple:

[VB.NET]
Partial Public Class TextSearchForm
  Inherits Form
  '...
  Private _viewerTool As PdfViewerTool
  Private _imageViewer As ImageViewer
  '...
  Public Sub New()
     '...
     ' creates the PdfViewerTool instance
     _viewerTool = New PdfViewerTool(_imageViewer, New _
                   SolidBrush(Color.FromArgb(56, Color.Blue)))
     ' subscribe to viewer tool events
     AddHandler _viewerTool.TextSearched, AddressOf _viewerTool_TextSearched
     ' sets the PDF viewer tool as current tool
     _imageViewer.CurrentTool = _viewerTool
  End Sub

  ' Search the text starts with a current page.
  Public Sub SearchText(ByVal text As String, ByVal newSearch As Boolean)
     ' creates find options
     Dim findTextOptions As FindTextOptions = New FindTextOptions()
     ' non case sensitive text must be searched
     findTextOptions.MathCase = False
     ' find text at all pages
     If newSearch Then
        _viewerTool.FindText(text, PdfViewerTool.FindTextMode.AllPages, _
                                                       findTextOptions)
     Else
        _viewerTool.FindTextNext(text, PdfViewerTool.FindTextMode.AllPages, _
                                                           findTextOptions)
     End If
  End Sub

  ' PdfViewerTool.FindTextFinished event handler.
  Private Sub _viewerTool_TextSearched(ByVal sender As Object, _
                                       ByVal e As PdfTextSearchedEventArgs)
     If e.FoundTextRegion Is Nothing Then
        ' text was not found
        MessageBox.Show(String.Format("The following specified text was not found: {0}", _
                                                                       e.SearchingText))
     Else
        ' text was found
        ' set focused page
        _imageViewer.FocusedIndex = e.PageIndex
        ' select text region
        _viewerTool.SelectedRegion = e.FoundTextRegion
     End If
  End Sub
End Class

[C#]
public partial class TextSearchForm : Form
{
    //...
    ImageViewer _imageViewer = null;
    PdfViewerTool _viewerTool = null;

    //...
    public TextSearchForm()
    {
        //...
        // creates the PdfViewerTool instance
        _viewerTool = new PdfViewerTool(_imageViewer, new SolidBrush(
                                        Color.FromArgb(56, Color.Blue)));
        // subscribe to viewer tool events
        _viewerTool.TextSearched += new EventHandler(
                                                     _viewerTool_TextSearched);
        // sets the PDF viewer tool as current tool
        _imageViewer.CurrentTool = _viewerTool;
    }

    // Search the text starts with a current page.
    public void SearchText(string text, bool newSearch)
    {
        // creates find options
        FindTextOptions findTextOptions = new FindTextOptions();
        // non case sensitive text must be searched
        findTextOptions.MathCase = false;
        // find text at all pages
        if (newSearch)
            _viewerTool.FindText(text, PdfViewerTool.FindTextMode.AllPages, 
                                                          findTextOptions);
        else
            _viewerTool.FindTextNext(text, PdfViewerTool.FindTextMode.AllPages, 
                                                              findTextOptions);
    }
 
    // PdfViewerTool.FindTextFinished event handler.
    void _viewerTool_TextSearched(object sender, PdfTextSearchedEventArgs e)
    {
        if (e.FoundTextRegion == null)
        {
            // text was not found
            MessageBox.Show(string.Format("The following specified text was not found: {0}", 
                                                                          e.SearchingText));
        }
        else
        {
            // text was found
            // set focused page
            _imageViewer.FocusedIndex = e.PageIndex;
            // select text region
            _viewerTool.SelectedRegion = e.FoundTextRegion;
        }
    }
}