Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用itext更改现有的pdf页面大小?_Itext - Fatal编程技术网

如何使用itext更改现有的pdf页面大小?

如何使用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,但在当前页面之外,还有一些内容没有显示出来。我想更改页面大小,以便可以显示所有内容。有没有办法用itext实现这一点?

公共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,您也必须以类似的方式进行更新。