C# iTextSharp调整每个页面的大小以适应页面大小
我有一个.pdf文档,例如有7页。我将此文档拆分为7.pdf文档,这意味着每个文档只有一页。但主要是我需要使页面内容适合。因此,删除空白、边距、调整大小。你有什么简单的建议吗?我为图片添加了链接,也为拆分的pdf文档添加了代码。谢谢你的回复 输入: 期望输出: 代码: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
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);