Info sobre o produto


Visão geral

Licenciamento

FAQ

Forums

Exemplos

History


Download

Versão de avaliação

On-line manual

Recomendações


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

Questões gerais:

 

Redistribuição:

 

PDF:

 

Programação:

 

 

Para que propósito posso usar o VintaSoftPDF.NET Plug-in?

Você pode usar isto como plug-in para o VintaSoftImaging.NET SDK e este vai permitir você mostrar, processar, criar, converter, anotar, imprimir, salvar, manipular e editar arquivos PDF.

 

 

De que partes consiste a biblioteca?

A biblioteca contém:

  • O componente VintaSoftPDF.NET - um componente 100% .NET (arquivo Vintasoft.PDF.dll)
  • Documentação em formato CHM (arquivo Vintasoft.Imaging.chm)
  • Exemplos para MS Visual Basic.NET, MS Visual C#, ASP.NET (arquivos estão no diretório Examples)
  • Demo aplicação (diretório Bin)

 

 

Em que linguagem de programação posso usar o componente?

Com uma licença desenvolvedor ou licença para várias estações de trabalho você pode usar o componente em:

  • Microsoft Visual Studio .NET : Visual Basic, Visual C#, Visual C++, Visual J#
  • Borland Delphi 8.0, Borland C# Builder, Borland C++ BuilderX
  • qualquer outra linguagem que seja compatível com o Framework .NET.

Com a licença servidor você pode usar o componente em:

  • Aplicações intranet / internet no lado servidor (ASP.NET ou PHP)

 

 

Que restrições tem os usuários não registrados?

A versão não registrada tem as seguintes restrições:

  • tela de propaganda (nag screen)
  • marca d’água
  • algumas tags para alterações de arquivos PDF estão desabilitadas

Todas as restrições são removidas na versão registrada.

 

 

Estou com problemas. O que devo fazer?

As respostas para a maior parte as questões pode se encontrada na documentação ou neste FAQ.
Escreva para o nosso suporte para obter mais ajuda.

 

 

Que arquivos eu preciso incluir na instalação do meu programa?

Você precisa incluir apenas dois arquivos: Vintasoft.Imaging.dll e Vintasoft.PDF.dll. Este arquivo precisa ser colocado no mesmo diretório que o executável. Verifique se a versão que você vai distribuir seja a mesma versão que você usou para compilar o programa.

 

 

Posso distribuir o VintaSoftPDF.NET com meu programa sem pagar royalties?

Sim, este componente é livre de royalties. Você paga apenas pelo registro uma única vez. Apenas o Vintasoft.Pdf.dll pode ser distribuído junto com sua aplicação. A licença Individual de Desenvolvedor (Single Developer) tem limitação de distribuição. Por favor, leia o contrato de licença para mais informações.

 

 

Eu não consigo abrir o arquivo PDF usando sua biblioteca. O que devo fazer?

Por favor, envie-nos sua imagem "ruim". Nós vamos analizar a imagem e atualizar nosso algoritmo de leitura se a imagem está correta.

 

 

O document PDF é mostrado incorretamente. O que devo fazer?

É possível que enquanto uma página foi gerada:

  • um erro ocorra
  • um advertência apareça
  • uma página contenha elementos não suportados

Error (PDFRuntimeError): aparece quando existe uma tentative de desenhar um element não suportado (ex. imagem JPEG2000), ou um erro interno ocorra na biblioteca. Erros na página de elementos de desenho indicam que a página foi desenhada incorretamente.

Advertência (PDFRuntimeWarning): aparece quando são usados funções não suportados de correção de cores (ex. ICCProfile). A advertência signifca que o elemento foi completamente desenhado, mas a função de correção das cores não foi.

Na versão atual não são suportados:

  • Fontes: MMType1; OpenType
  • ColorSpaces: CALGray; CALRGB; DeviceN, Lab;
  • Imagens: imagens JPEG200; imagens JPEG não-indexado baseado no CMYK color space; imagens baseadas no CALGray, CALRGB, DeviceN, Lab color spaces
  • ShadingPatterns: TensorProductPatchMesh; CoonsPatchMesh
  • Funções: PostScriptCalculator
  • ColorCorrection: ICCProfile; Rendering Intents

Erros e advertências podem também aparecer durante o salvamento de um arquivo PDF/A.

Para ver se o documento foi corretamente desenhado (se existir elementos não suportados ou erros) é necessário o uso da propriedade PDFDocument.RuntimeMessages. Aqui está um exemplo de código para calcular os erros / advertências no documento:

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

Se o documento foi desenhado com o erro, mas a biblioteca não informou sobre esse erro, ou se ocorreu um erro e o erro não estiver relacionado com elementos não suportados - envie o documento PDF para equipe de suporte da VintaSoft para posterior revisão e depuração.

 

 

Como faço para empacotar um document PDF?

O empacotamento (PDFDocument.Pack) permite:

  • remover de um documento objetos que não podem ser usados
  • mudar a versão do arquivo PDF (ex. converter para PDF/A)
  • especificar o uso de tables de compressão Cross-Reference (da especificação do PDF versão 1.5)
  • especificar o uso de filtros de texto para dados binários

O uso de funções PDFDocument.Optimize permite configurar uma forma de compressão para diferentes objetos: imagens coloridas, imagem em preto-e-branco, dados. Antes do término do trabalho a função Optimize vai chamar a função Pack.

Aqui um exemplo que mostra como empacotar um arquivo PDF (optimize=false) ou como empacotar um arquivo PDF e converter todas as imagens coloridas para 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();
}

 

 

O que devo fazer quando não for encontrada a fonte?

O algoritmo de busca de fontes padrão é o seguinte: a busca começa no diretório $ASSEMBLY_DIRECTORY$\Fonts\, se não encontrar a fonte este começa a procurar as fontes instaladas no sistema (informação extraída do registro). Quando a fonte não for encontrada, você deve colocar a fonte no diretório $ASSEMBLY_DIRECTORY$\Fonts\ ou instalar no sistema. Você deve levar em conta que a busca acontece pelo nome comum da fonte, não pelo estilo PostScript.

Se você quiser redefinir o algoritmo de procura da fonte, você precisa criar uma implementação da interface IfontProgramsController ou herdar de qualquer implementação desta interface (SystemFontProgramsController, UserAndSystemFontProgramsController). Depois é necessário inicializar a propriedade PDFDocument.FontProgramsController usando uma instância criada por sua classe.

 

 

Como converter PDF para TIFF?

Aqui está um exemplo que mostra como converter um documento PDF para TIFF usando uma coleção de imagens e 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();
}

Aqui está um exemplo que mostra como converter um documento PDF para TIFF usando PdfDocument e 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();
}

 

 

Como converter PDFpara TIFF com resolução definida (dpi)?

Aqui um exemplo que mostra como converter documento PDF para TIFF (como definição de resolução e dado parâmetros do desenho) usando a coleção de imagens e 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();
}

Aqui um exemplo que mostra como converter documentos PDF para TIFF (com definição de resolução e dado parâmetros do desenho) usando PdfDocument e 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();
}

 

 

Como converter TIFF para PDF?

Aqui um exemplo que mostra como converter arquivo TIFF para documento PDF usando coloção de imagens e 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();
}

Aqui um exemplo que mostra como converter arquivo TIFF para document PDF usando PdfDocument e 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();
}

 

 

Como converter TIFF para PDF/A?

Aqui um exemplo que mostra como converter arquivo TIFF para documento PDF/A usando coleção de imagens e 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();
}

Aqui um exemplo que mostra como converter arquivo TIFF para document PDF/A usando PdfDocument e 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();
}