Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.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
Java 如何使用特定页面的书签调整PDF页面的大小?_Java_Apache_Pdfbox - Fatal编程技术网

Java 如何使用特定页面的书签调整PDF页面的大小?

Java 如何使用特定页面的书签调整PDF页面的大小?,java,apache,pdfbox,Java,Apache,Pdfbox,如何调整特定PDF页面的页面大小?我是否必须使用book标记来选择要调整大小的特定页面?如果是,我怎么做 下面是我试图调整大小并使用ApachePDF框的代码 import java.awt.print.PrinterException; import java.io.File; import java.io.IOException; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDP

如何调整特定PDF页面的页面大小?我是否必须使用book标记来选择要调整大小的特定页面?如果是,我怎么做

下面是我试图调整大小并使用ApachePDF框的代码

import java.awt.print.PrinterException;
import java.io.File;
import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.encryption.InvalidPasswordException;
import org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDDocumentOutline;
import org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDOutlineItem;
import org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDOutlineNode;

public class PDFLoader {

    public static void main(String[] args) throws InvalidPasswordException, IOException, PrinterException {


         //Loading an existing document 
          File file = new File("d:\\pdf\\source.pdf"); 
          PDDocument document = PDDocument.load(file); 
          PDPage page1 = document.getDocumentCatalog().getPages().get(0);
          PDPage page2 = document.getDocumentCatalog().getPages().get(1);




          //PDRectangle mediaBox = page1.getMediaBox();

          //if (mediaBox.getWidth() == 6 * 72 && mediaBox.getHeight() == 8 * 72)

          PDDocumentOutline outline =  document.getDocumentCatalog().getDocumentOutline();

          PDRectangle mediaBox = new PDRectangle(8.0f * 72, 13.5f * 72);
          PDRectangle mediaBox1 = new PDRectangle(8.5f * 72, 11.5f * 72);

          page1.setMediaBox(mediaBox1);
          if(getBookmark(outline, "")){
          page2.setMediaBox(mediaBox);
          }

          PDDocument doc = new PDDocument();
          doc.addPage(page1);
          doc.addPage(page2);

          doc.save("d:\\pdf\\newDocument.pdf");
          doc.close();

    }

    public static boolean getBookmark(PDOutlineNode bookmark, String indentation) throws IOException
    {
        PDOutlineItem current = bookmark.getFirstChild();
        while (current != null)

        {
            System.out.println(indentation + current.getTitle());

            if(current.getTitle().equals("2016 Users Kit Final 9")){

                System.out.println("Returning as true as the book mark is found");
                return true;
            }

            getBookmark(current, indentation + "    ");
            current = current.getNextSibling();

            }

        System.out.println("Returning as false as the book mark is not found");

        return false;
    }

}

首先选择一种产品,然后明确你想要什么。要调整页面大小,还是要在有人单击书签时缩放页面显示?我已重新表述了我的问题,并在上面发布了我的代码。很抱歉,这没有意义,或者我不明白你的意思。如果您只想调整第2页的大小,请仅调用第2页。(基于0,因此调用
document.getPage(1)
来获取您的PDPage对象)。您只需通过调用
document.getPage(69)
或其他方法来检索所需的页面。如果因为书签名为“ID卡”而获取页面,则通过书签检索页面。。。请看,但也请阅读评论。很高兴它起了作用。请删除问题或自己回答,以避免“孤儿”。