当前位置: 首页 > 知识库问答 >
问题:

为什么在将页面大小调整为7.31 x 11大小后,一些内容会被裁剪掉?

岳正阳
2023-03-14

当我试图将页面大小调整为7.31 x 11时,该页面中的一些内容会从窗口中被裁剪掉。下面是我的输出文档的链接。

http://www.filedropper.com/mynewdocument

下面是我的源代码

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.action.PDActionGoTo;
import org.apache.pdfbox.pdmodel.interactive.documentnavigation.destination.PDPageDestination;
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 PDFConvert {

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

        File file = new File("d:\\pdf\\000009.pdf");
        PDDocument document = PDDocument.load(file);
        PDPage page1 = document.getDocumentCatalog().getPages().get(0);

        PDDocumentOutline outline = document.getDocumentCatalog().getDocumentOutline();
        PDRectangle mediaBox = new PDRectangle(7.31f * 72, 11.0f * 72);
        PDPage reSizepage = printBookmark(document, outline, "");
        if (reSizepage != null) {
            reSizepage.setMediaBox(mediaBox);
        }

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

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

    }

    public static PDPage printBookmark(PDDocument document, PDOutlineNode bookmark, String indentation)
            throws IOException {
        PDOutlineItem current = bookmark.getFirstChild();

        while (current != null) {
            System.out.println(current.getTitle());

            if (current.getDestination() instanceof PDPageDestination) {

                if (current.getTitle().equals("Table DP-2. Profile of Selected Social Characteristics: 2000")) {

                    PDPageDestination pd = (PDPageDestination) current.getDestination();
                    System.out.println("Destination page: " + (pd.retrievePageNumber()));

                    return pd.getPage();

                }
            }

            printBookmark(document, current, indentation + "    ");
            current = current.getNextSibling();
        }
        return null;

    }
}

共有1个答案

南门新荣
2023-03-14

当然,你的内容被删掉了,这就是你告诉它要做的。您还需要收缩内容,为页面内容流预先设置缩放矩阵:

    if (reSizepage != null)
    {
        reSizepage.setMediaBox(mediaBox);

        PDPageContentStream contentStream = new PDPageContentStream(document, reSizepage, PDPageContentStream.AppendMode.PREPEND, false);
        contentStream.transform(Matrix.getScaleInstance(0.9f, 0.9f));
        contentStream.close();
    }

类似,但更好的答案(最后全部重置)

 类似资料:
  • 问题内容: 我需要将图片调整为固定大小。但它必须将宽度和高度之间的因素。 说我要调整从图片到 我现在要做的是: 现在我考虑最小的因素。 从那以后我一直都有正确的宽度。但是身高还是。 如何在不破坏图片的情况下降低高度? 我需要修剪吗?如果可以,怎么办? 问题答案: 这个解决方案与Can BerkGüder的解决方案基本相同,但是花了一些时间写和发表评论后,我才觉得喜欢发布。 此功能创建的缩略图与您提

  • 问题内容: 我正在从磁盘读取图像,并将其显示在一行中。图像文件大于行中需要显示的图像文件。由于我需要将RAM 缓存在内存中以加快访问速度,因此我希望它们的大小只能与s 一样大(85x85 dip) 现在我正在读文件 位图= BitmapFactory.decodeFile(file); 而ImageView负责缩放和裁剪它 android:scaleType =“ centerCrop” AFAI

  • 当我用CSS设置背景图像时,我的布局有问题。我已经在谷歌上查过了,但是找不到有完全相同问题的人,而且没有一个解决方案适用。 我正在尝试做的是创建一个页面,其背景图像填充整个屏幕的高度。考虑这个简单的html页面: 在CSS中,我有两个选择器: 它工作得很好,除了我调整窗口大小的时候。如果将浏览器的大小调整为小于div的宽度和高度的值,则会出现滚动条并剪切内容。下面是一个300KB的gif来说明这个

  • 我正在使用适用于Android的jitsi meet sdk开发一个应用程序,当我加入一个房间时,我会收到一个“将您连接到您的服务器…”信息,但被删掉了。 你知道如何定制文本裁剪或更改/删除消息吗?因为它有点难看。 请注意,25天前我已经在他们的GitHub上打开了一个问题,但仍然没有收到任何答案。 问题存在于2.11和3.3.0中 这是一个10.1屏幕,屏幕分辨率为1920x1200 我可以用屏

  • 问题内容: 我想显示具有特定宽度和高度的URL的图像,即使它 具有不同的尺寸比例。所以我想调整大小(保持比例), 然后将图像切成我想要的大小。 我可以使用html img属性调整大小,也可以使用剪切background-image。 我该怎么办? 例: 这个图片: 具有800x600像素大小,我想显示为200x100 像素图像 通过img我可以调整图像大小200x150px: 这给了我这个: 而且

  • 已经建立了一个小的测试SWING应用程序,有三个面板。一个主JPanel,包含两个较小的JPanel。一个在左边(板面板),另一个在右边(侧板)。通过调用min、preferred和max size方法,两个内部面板都被设置为请求的特定大小。右面板中的一个按钮将父JFrame设置为not re-sizable。在父帧设置为不可调整大小之前,一切看起来都很好,这会导致(?!)调整框架和主面板的大小,