Как я могу вставить изображение с iTextSharp в существующем PDF?

В некоторых ответах я видел некоторые сведения о пропуске, поэтому я решил добавить новый.

Сборники Java. Arrays.asList принимает var-arg типа T (T ...). Если вы передадите примитивный массив (int array), метод asList выведет и сгенерирует List<int[]>, который является списком из одного элемента (один элемент является примитивным массивом). если вы перетасовываете этот список элементов, он ничего не изменит.

Итак, сначала вам нужно преобразовать примитивный массив в массив объектов Wrapper. для этого вы можете использовать метод ArrayUtils.toObject из apache.commons.lang. затем передать сгенерированный массив в список и окончательно перетасовать его.

  int[] intArr = {1,2,3};
  List<Integer> integerList = Arrays.asList(ArrayUtils.toObject(array));
  Collections.shuffle(integerList);
  //now! elements in integerList are shuffled!
41
задан johnny 26 February 2009 в 12:46
поделиться

2 ответа

Если Вы хотите изменить содержание существующего файла PDF и добавить дополнительное содержание, такое как водяные знаки, pagenumbers, дополнительные заголовки, PdfStamper является объектом, в котором Вы нуждаетесь. Я успешно использовал следующий код вставить изображение в существующий файл PDF к данной абсолютной позиции:

using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;

class Program
{
    static void Main(string[] args)
    {
        using (Stream inputPdfStream = new FileStream("input.pdf", FileMode.Open, FileAccess.Read, FileShare.Read))
        using (Stream inputImageStream = new FileStream("some_image.jpg", FileMode.Open, FileAccess.Read, FileShare.Read))
        using (Stream outputPdfStream = new FileStream("result.pdf", FileMode.Create, FileAccess.Write, FileShare.None))
        {
            var reader = new PdfReader(inputPdfStream);
            var stamper = new PdfStamper(reader, outputPdfStream);
            var pdfContentByte = stamper.GetOverContent(1);

            Image image = Image.GetInstance(inputImageStream);
            image.SetAbsolutePosition(100, 100);
            pdfContentByte.AddImage(image);
            stamper.Close();
        }
    }
}

при вставке изображения, у Вас есть возможность изменить размеры его. Можно смотреть на матрица преобразования в iTextSharp документации.

67
ответ дан Darin Dimitrov 4 August 2019 в 21:35
поделиться

Вот аналогичный пример, в котором я вставляю изображение на страницу с помощью штампа:

Сообщение из списка рассылки Gmane iTex

1
ответ дан 26 November 2019 в 22:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: