如何使用itext更改现有的pdf页面大小?
我有一个pdf,但在当前页面之外,还有一些内容没有显示出来。我想更改页面大小,以便可以显示所有内容。有没有办法用itext实现这一点?如何使用itext更改现有的pdf页面大小?,itext,Itext,我有一个pdf,但在当前页面之外,还有一些内容没有显示出来。我想更改页面大小,以便可以显示所有内容。有没有办法用itext实现这一点?公共PDF阅读器更改PDFPageSize(字符串输入DF、字符串输出DF、浮点垂直、浮点水平) public PdfReader changePDFPageSize(String inpdf,String outpdf,float vertical,float horizontal) { try { PdfReader read
公共PDF阅读器更改PDFPageSize(字符串输入DF、字符串输出DF、浮点垂直、浮点水平)
public PdfReader changePDFPageSize(String inpdf,String outpdf,float vertical,float horizontal)
{
try
{
PdfReader reader = new PdfReader(inpdf);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(outpdf));
for (int curPageNum = 1; curPageNum <= reader.getNumberOfPages(); ++curPageNum) {
PdfDictionary pagedict = reader.getPageN(curPageNum);
PdfArray mediabox = pagedict.getAsArray(PdfName.MEDIABOX);
mediabox.set(0, new PdfNumber(mediabox.getAsNumber(0).intValue()-horizontal));//left add
mediabox.set(1, new PdfNumber(mediabox.getAsNumber(1).intValue()-vertical));//down
mediabox.set(2, new PdfNumber(mediabox.getAsNumber(2).intValue()+horizontal));//right
mediabox.set(3, new PdfNumber(mediabox.getAsNumber(3).intValue()+vertical));//up
}
stamper.close();
return new PdfReader(outpdf);
} catch (FileNotFoundException e)
{
e.printStackTrace();
} catch (DocumentException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
return null;
}
{
尝试
{
PdfReader读取器=新PdfReader(inpdf);
PdfStamper stamper=新PdfStamper(读取器,新文件输出流(outpdf));
对于(int curPageNum=1;curPageNumitextsharp VB.NET
Dim objReader As PdfReader
Dim objStream As FileStream
Dim objStamper As PdfStamper
Dim objContent As PdfContentByte
Dim objImport As PdfImportedPage
Dim objMark As Image
objReader = New PdfReader(strBookPath)
objStream = New FileStream(strTempPath, FileMode.Create)
objStamper = New PdfStamper(objReader, objStream)
objContent = objStamper.GetOverContent(1)
objImport = objStamper.GetImportedPage(objReader, 1)
objContent.AddTemplate(objImport, PageSize.A4.Width / objImport.Width, 0, 0, PageSize.A4.Height / objImport.Height, 0, 0)
objReader.GetPageN(1).Put(PdfName.CROPBOX, New PdfRectangle(PageSize.A4.Width, PageSize.A4.Height))
objReader.GetPageN(1).Put(PdfName.MEDIABOX, New PdfRectangle(PageSize.A4.Width, PageSize.A4.Height))
使用PdfStamper
更新页面的媒体框和裁剪框。感谢您的帮助。真的帮助了我。如果为原始PDF中的页面设置了CropBox,您也必须以类似的方式进行更新。