iText7 如何设置现有PDF 文档的边距并保存新创建的文件?

问题描述

我在 C# 中使用 iText7,我有一个 PDF 文件,我必须在其中以编程方式更改边距。 我已经尝试了一切,但都没有取得多大成功,唯一对我有用的有点就是这段代码

PdfDocument pdfDoc = new PdfDocument(new PdfReader(sourceFile),new PdfWriter(destinationFile));
float margin = 30;

for (int i = 0; i < pdfDoc.GetNumberOfPages(); i++)
{
    pdfpage page = pdfDoc.GetPage(i+1);
    Rectangle mediaBox = page.GetMediaBox();
    Rectangle newMediaBox = new Rectangle(mediaBox.GetLeft() - margin,mediaBox.GetBottom() + margin,mediaBox.GetWidth(),mediaBox.GetHeight());
    page.SetMediaBox(newMediaBox);
}

pdfDoc.Close();

我说有点,因为它所做的只是推送 PDF 文件内容

有什么方法可以更改现有 PDF 文件的边距吗?

任何帮助将不胜感激!

更新

我尝试过古斯塔夫的回答,但没有任何改变 这是我的代码

public static void Main(String[] args)
{
    RegisterPdfImproved(source,target);
}

public static void RegisterPdfImproved(string sourceFilename,string targetFilename)
{
    using (PdfDocument pdf = new PdfDocument(new PdfReader(sourceFilename),new PdfWriter(targetFilename)))
    using (Document document = new Document(pdf))
    {
        document.SetMargins(2000,2000,2000);
        //Paragraph paragraph = new Paragraph(registration).AddStyle(RegistrationStyle()).SetMarginTop(0);
        //document.Add(paragraph);
    }
}

private static Style RegistrationStyle()
{
    // Fixed design values for font and rectangle.
    PdfFont font = PdfFontFactory.CreateFont(StandardFonts.HELVETICA);
    const float fontSize = 8F;
    const float rightPadding = 3F;
    TextAlignment textAlignment = TextAlignment.RIGHT;
    iText.Kernel.Colors.Color borderColor = ColorConstants.RED;
    iText.Kernel.Colors.Color fillColor = ColorConstants.WHITE;
    const float borderWidth = 0.7F;

    Style style = new Style()
        .SetFont(font)
        .SetFontSize(fontSize)
        .SetPaddingRight(rightPadding)
        .SetTextAlignment(textAlignment)
        .SetBackgroundColor(fillColor)
        .SetBorder(new SolidBorder(borderColor,borderWidth));

    return style;
}

也许我做错了什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)