C# iTextSharp调整每个页面的大小以适应页面大小

C# iTextSharp调整每个页面的大小以适应页面大小,c#,pdf,split,resize,itextsharp,C#,Pdf,Split,Resize,Itextsharp,我有一个.pdf文档,例如有7页。我将此文档拆分为7.pdf文档,这意味着每个文档只有一页。但主要是我需要使页面内容适合。因此,删除空白、边距、调整大小。你有什么简单的建议吗?我为图片添加了链接,也为拆分的pdf文档添加了代码。谢谢你的回复 输入: 期望输出: 代码: public void PdfSplitDocument(字符串文件名) { String path=“C:/Doc/”+文件名; String result=“d:/output/result”; PdfCopy副本; Pd

我有一个.pdf文档,例如有7页。我将此文档拆分为7.pdf文档,这意味着每个文档只有一页。但主要是我需要使页面内容适合。因此,删除空白、边距、调整大小。你有什么简单的建议吗?我为图片添加了链接,也为拆分的pdf文档添加了代码。谢谢你的回复

输入:

期望输出:

代码:

public void PdfSplitDocument(字符串文件名)
{
String path=“C:/Doc/”+文件名;
String result=“d:/output/result”;
PdfCopy副本;
PdfReader reader=新PdfReader(路径);
对于(int i=1;i来看一个例子。它使用类来查找文本所在的边距。在这个例子中,取自我的书“iText In Action-Second Edition”,我使用这个类来绘制一个矩形:

public void addMarginRectangle(String src, String dest)
    throws IOException, DocumentException {
    PdfReader reader = new PdfReader(src);
    PdfReaderContentParser parser = new PdfReaderContentParser(reader);
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(RESULT));
    TextMarginFinder finder;
    for (int i = 1; i <= reader.getNumberOfPages(); i++) {
        finder = parser.processContent(i, new TextMarginFinder());
        PdfContentByte cb = stamper.getOverContent(i);
        cb.rectangle(finder.getLlx(), finder.getLly(),
            finder.getWidth(), finder.getHeight());
        cb.stroke();
    }
    stamper.close();
    reader.close();
}
另一个选项是更改介质盒而不是裁剪盒:

pageDict.put(PdfName.MEDIABOX, rect);
这些例子的C版本可以在这里找到:


亲爱的先生,非常感谢您!我不得不做一些更改,但根据您发布的内容,它工作得非常完美。
public void manipulatePdf(String src, String dest)
    throws IOException, DocumentException {
    PdfReader reader = new PdfReader(src);
    int n = reader.getNumberOfPages();
    PdfDictionary pageDict;
    PdfRectangle rect = new PdfRectangle(llx, lly, urx, ury);
    for (int i = 1; i <= n; i++) {
        pageDict = reader.getPageN(i);
        pageDict.put(PdfName.CROPBOX, rect);
    }
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
    stamper.close();
    reader.close();
}
pageDict.put(PdfName.MEDIABOX, rect);