У меня есть файл в формате PDF, в котором есть поле формы PDF. Я использую PdfStamper для заполнения этих полей. Кроме того, я хотел бы иметь возможность изменять поля для созданного PDF. есть ли способ изменить поля страницы в штампованном PDF-файле?Установите поля страницы с iTextSharp
12
A
ответ
13
Только так я знаю, это так.
iTextSharp.text.Rectangle rec = new iTextSharp.text.Rectangle(pageWidth, pageHeight);
Document doc = new Document(rec);
doc.SetMargins(0f, 0f, 0f, 0f);
Однако, это ограничит рентабельность слишком
+2
Большое спасибо! Это была неприятная проблема. Также может потребоваться отметить, что pageWidth и pageHeight находятся в пикселях. Я использовал 612 x 792 (для 72dpi), чтобы получить обычный размер страницы. – James
16
Вы можете сделать все это в одной строке.
Document doc = new Document(PageSize.LETTER, 0f, 0f, 0f, 0f);
-1
setMaring Impelemented в
public override bool SetMargins(float marginLeft, float marginRight, float marginTop, float marginBottom)
{
if ((this.writer != null) && this.writer.IsPaused())
{
return false;
}
this.nextMarginLeft = marginLeft;
this.nextMarginRight = marginRight;
this.nextMarginTop = marginTop;
this.nextMarginBottom = marginBottom;
return true;
}
для этого запас применяется для следующей страницы. для решения этой проблемы после открытия pdfDocument call newPage() это решение работает для пустой pdfDocument.
using (FileStream msReport = new FileStream(pdfPath, FileMode.Create))
{
using (Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 10f))
{
try
{
//open the stream
pdfDoc.Open();
pdfDoc.setMargin(20f, 20f, 20f, 20f);
pdfDoc.NewPage();
pdfDoc.Close();
}
catch (Exception ex)
{
//handle exception
}
finally
{
}
}
}
Нужно ли поддерживать ** тот же самый существующий размер страницы в качестве вашего PDF-шаблона, или это приемлемо для создания нового документа со слегка большим/меньшим размером страницы? – kuujinbo