Я потерян в данный момент. Что я пытаюсь сделать, это добавить один PDF на другой (например, водяной знак). Проблема в том, что я, кажется, не понимаю систему координат, которая используется, потому что мой водяной знак просто ведет себя непредсказуемо.Импорт позиции в PDF-формате PDF-накопитель
Два PDF-файла имеют разные размеры.
Моя цель имеет следующие размеры:
595 высота
842 ширина
формата PDF, который должен быть добавлен имеет такой размер:
41 высота
552 ширина
В моем коде я делаю следующие:
public bool AddPdf(ref PdfReader pdfSource, ref PdfReader pdfTarget, ref FileStream destination)
{
PdfStamper stamper = null;
try
{
stamper = new PdfStamper(pdfSource, destination);
PdfImportedPage importatedPage = stamper.GetImportedPage(pdfTarget, 1);
PdfContentByte background;
for (int iPage = 1; iPage <= pdfSource.NumberOfPages; iPage++)
{
background = stamper.GetOverContent(iPage);
background.AddTemplate(importatedPage, 0, 0 + importHeight);
}
}
Когда я делаю Я бы ожидал, что мой водяной знак появится в левом нижнем углу. Вместо этого он находится где-то на странице (я его не вижу). Просто для тестирования я жестко закодировал 600 как позицию y, а затем вертикально центрировался на странице.
Может ли кто-нибудь дать мне отзыв?
То, что я узнал сейчас, представляет интерес. Если я создаю новый документ с PageSize для Sourcepdf, результат будет иметь разные размеры. Кажется, что есть что-то вроде страницы и «видимого размера». Имеет ли это смысл ? – traffiq
Итак, я решил проблему. Проблема заключалась в том, что sourcepdf имел обрезку - поэтому мне нужно только скорректировать мои позиции x и y с этой информацией: Rectangle cropBox = pdfSource.GetCropBox (iPage); float xCorrected = 0 + cropBox.Left; float yCorrected = 0 + cropBox.Bottom; background.AddTemplate (импортированная страница, xCorrected, yCorrected); } } – traffiq
Хорошо, что вы решили свою проблему. Это, BTW, показывает, почему для таких вопросов необходимо также предоставить сам PDF для проверки. (Как замечание на стороне: 'background = stamper.GetOverContent' кажется странным, поскольку ** OverContent ** - это * передний план *, в то время как ** UnderContent ** является * фоном. *) – mkl