Adicionando Imagens e Texto

A classe PdfFileMend pode ajudá-lo a adicionar imagens e texto em um documento PDF existente, em um local especificado. Ela fornece dois métodos com os nomes AddImage e AddText. O método AddImage permite adicionar imagens do tipo JPG, GIF, PNG e BMP. O método AddText recebe um argumento do tipo FormattedText e o adiciona no arquivo PDF existente. As imagens e o texto podem ser adicionados em uma região retangular especificada pelas coordenadas dos pontos inferior esquerdo e superior direito. Ao adicionar imagens, você pode especificar o caminho do arquivo da imagem ou um fluxo de um arquivo de imagem. Para especificar o número da página em que a imagem ou o texto precisa ser adicionado, ambos os métodos fornecem um argumento de número da página. Assim, você pode não apenas adicionar as imagens e o texto no local especificado, mas também em uma página específica.

Imagens são uma parte importante do conteúdo de um documento PDF. Manipular imagens em um arquivo PDF existente é uma necessidade comum para as pessoas que trabalham com arquivos PDF. Neste artigo, exploraremos como as imagens podem ser manipuladas em um arquivo PDF existente, com a ajuda do namespace Aspose.Pdf.Facades de Aspose.PDF for .NET. Todas as operações relacionadas a imagens do namespace Aspose.Pdf.Facades foram consolidadas neste artigo.

Detalhes da implementação

O namespace Aspose.Pdf.Facades permite que você adicione novas imagens em um arquivo PDF existente. Você também pode substituir ou remover uma imagem existente. Um arquivo PDF também pode ser convertido em imagens. Você pode converter cada página individual em uma única imagem ou um arquivo PDF completo em uma imagem. Ele permite formatos como JPEG, BMP, PNG e TIFF, etc. Você também pode extrair as imagens de um arquivo PDF. Você pode usar quatro classes do namespace Aspose.Pdf.Facades para implementar essas operações, ou seja, PdfFileMend, PdfContentEditor, PdfExtractor e PdfConverter.

Operações de Imagem

Nesta seção, teremos uma visão detalhada dessas operações de imagem. Também veremos os trechos de código para mostrar o uso das classes e métodos relacionados. Primeiro de tudo, vamos dar uma olhada em como adicionar uma imagem em um arquivo PDF existente. Podemos usar o método AddImage da classe PdfFileMend para adicionar uma nova imagem. Usando este método, você pode não apenas especificar o número da página em que deseja adicionar a imagem, mas também a localização da imagem pode ser especificada.

Adicionar Imagem em um Arquivo PDF Existente (Facades)

Você pode usar o método AddImage da classe PdfFileMend. O método AddImage requer a imagem a ser adicionada, o número da página em que a imagem precisa ser adicionada e as informações de coordenadas. Depois disso, salve o arquivo PDF atualizado usando o método Close.

No exemplo a seguir, adicionamos uma imagem à página usando imageStream:

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddImage01()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Images(); 

    // Create PDF document and PdfFileMend objects
    using (var document = new Aspose.Pdf.Document(dataDir + "AddImage.pdf"))
    {
        using (var mender = new Aspose.Pdf.Facades.PdfFileMend())
        {
            // Load image into stream
            using (var imageStream = File.OpenRead(dataDir + "AddImage.png"))
            {
                // Bind PDF document
                mender.BindPdf(document);

                // Add image to first page
                mender.AddImage(imageStream, 1, 10, 650, 110, 750);

                // Save PDF document
                mender.Save(dataDir + "AddImage_out.pdf");
            }
        }
    }
}

Adicionar Imagem

Com a ajuda de CompositingParameters, podemos sobrepor uma imagem sobre outra:

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddImage02()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Images();

    // Create PDF document and PdfFileMend objects
    using (var document = new Aspose.Pdf.Document(dataDir + "AddImage.pdf"))
    {
        using (var mender = new Aspose.Pdf.Facades.PdfFileMend())
        {
            // Load image into stream
            using (var imageStream = File.OpenRead(dataDir + "AddImage.png"))
            {
                // Bind PDF document
                mender.BindPdf(document);

                int pageNum = 1;
                int lowerLeftX = 10;
                int lowerLeftY = 650;
                int upperRightX = 110;
                int upperRightY = 750;

                // Use compositing parameters for the image
                var compositingParameters = new Aspose.Pdf.CompositingParameters(Aspose.Pdf.BlendMode.Multiply);

                mender.AddImage(imageStream, pageNum, lowerLeftX, lowerLeftY, upperRightX, upperRightY, compositingParameters);

                // Save PDF document
                mender.Save(dataDir + "AddImage_out.pdf");
            }
        }
    }
}

Adicionar Imagem

Existem várias maneiras de armazenar uma imagem em um arquivo PDF. Vamos demonstrar uma delas no exemplo a seguir:

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddImage03()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Images();

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "AddImage.pdf"))
    {
        using (var mender = new Aspose.Pdf.Facades.PdfFileMend())
        {
            // Load image into stream
            using (var imageStream = File.OpenRead(dataDir + "AddImage.png"))
            {
                // Bind PDF document
                mender.BindPdf(document);

                int pageNum = 1;
                int lowerLeftX = 10;
                int lowerLeftY = 650;
                int upperRightX = 110;
                int upperRightY = 750;

                // Use compositing parameters with BlendMode.Exclusion and ImageFilterType.Flate
                var compositingParameters = new Aspose.Pdf.CompositingParameters(
                    Aspose.Pdf.BlendMode.Exclusion,
                    Aspose.Pdf.ImageFilterType.Flate);

                mender.AddImage(imageStream, pageNum, lowerLeftX, lowerLeftY, upperRightX, upperRightY, compositingParameters);

                // Save PDF document
                mender.Save(dataDir + "AddImage_out.pdf");
            }
        }
    }
}
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddImage04()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Images();

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "AddImage.pdf"))
    {
        using (var mender = new Aspose.Pdf.Facades.PdfFileMend())
        {
            // Load image into stream
            using (var imageStream = File.OpenRead(dataDir + "AddImage.png"))
            {
                // Bind PDF document
                mender.BindPdf(document);

                int pageNum = 1;
                int lowerLeftX = 10;
                int lowerLeftY = 650;
                int upperRightX = 110;
                int upperRightY = 750;

                // Use compositing parameters with BlendMode.Multiply, ImageFilterType.Flate and false
                var compositingParameters = new Aspose.Pdf.CompositingParameters(
                    Aspose.Pdf.BlendMode.Multiply,
                    Aspose.Pdf.ImageFilterType.Flate,
                    false);

                mender.AddImage(imageStream, pageNum, lowerLeftX, lowerLeftY, upperRightX, upperRightY, compositingParameters);

                // Save PDF document
                mender.Save(dataDir + "AddImage_outp.pdf");
            }
        }
    }
}

Adicionar Texto em um Arquivo PDF Existente (facades)

Podemos adicionar texto de várias maneiras. Considere a primeira. Pegamos o FormattedText e o adicionamos à Página. Depois, indicamos as coordenadas do canto inferior esquerdo e, em seguida, adicionamos nosso texto à Página.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddText01()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Images();

    // Create PdfFileMend object
    using (var mender = new Aspose.Pdf.Facades.PdfFileMend())
    {
        // Bind PDF document
        mender.BindPdf(dataDir + "AddImage.pdf");

        // Create formatted text
        var message = new Aspose.Pdf.Facades.FormattedText("Welcome to Aspose!");

        // Add text to the first page at position (10, 750)
        mender.AddText(message, 1, 10, 750);

        // Save PDF document
        mender.Save(dataDir + "AddText_out.pdf");
    }
}

Veja como fica:

Adicionar Texto

A segunda maneira de adicionar FormattedText. Além disso, indicamos um retângulo no qual nosso texto deve caber.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddText02()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Images();

    // Create PdfFileMend object
    using (var mender = new Aspose.Pdf.Facades.PdfFileMend())
    {
        // Bind PDF document
        mender.BindPdf(dataDir + "AddImage.pdf");

        // Create formatted text
        var message = new Aspose.Pdf.Facades.FormattedText("Welcome to Aspose! Welcome to Aspose!");

        // Add text to the first page at the specified position with wrapping
        mender.AddText(message, 1, 10, 700, 55, 810);

        // Set word wrapping mode to wrap by words
        mender.WrapMode = Aspose.Pdf.Facades.WordWrapMode.ByWords;

        // Save PDF document
        mender.Save(dataDir + "AddText_out.pdf");
    }
}

O terceiro exemplo fornece a capacidade de adicionar texto a páginas especificadas. No nosso exemplo, vamos adicionar uma legenda nas páginas 1 e 3 do documento.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddText03()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Images();

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "AddImage.pdf"))
    {
        document.Pages.Add();
        document.Pages.Add();
        document.Pages.Add();

        // Create PdfFileMend object
        using (var mender = new Aspose.Pdf.Facades.PdfFileMend())
        {
            // Bind PDF document
            mender.BindPdf(document);

            // Create formatted text
            var message = new Aspose.Pdf.Facades.FormattedText("Welcome to Aspose!");

            // Specify the pages where text should be added
            int[] pageNums = new int[] { 1, 3 };

            // Add text to the specified pages at the specified coordinates
            mender.AddText(message, pageNums, 10, 750, 310, 760);

            // Save PDF document
            mender.Save(dataDir + "AddText_out.pdf");
        }
    }
}