簡體   English   中英

itext7的絕對位置

[英]Absolute position with itext7

我在itext7中添加相對於頁面大小具有絕對位置的圖像時遇到問題。

在itext5中,我使用了下面的代碼來確定相對於要添加頁面的圖像的位置

for (int i = 0; i < numberOfPages;) {
    page = copy.getImportedPage(reader, ++i);

    if(page.getBoundingBox().getWidth() != 595.00f) {
        img.setAbsolutePosition(page.getBoundingBox().getWidth() - (595-img.getAbsoluteX()),img.getAbsoluteY());
    }
    if(page.getBoundingBox().getHeight() != 842.00f) {
        img.setAbsolutePosition(img.getAbsoluteX(), page.getBoundingBox().getHeight() - (842-img.getAbsoluteY()));
    }

    stamp = copy.createPageStamp(page);
    stamp.getOverContent().addImage(img);
    stamp.alterContents();
    copy.addPage(page);
}

現在我正在使用itext7

public static void addImageToPDF(String inputFilePath, Image img) throws IOException, DocumentException {    

    File inFile = new File(inputFilePath);
    File outFile = new File(inputFilePath + "_image.pdf");

    PdfDocument pdfDoc = new PdfDocument(new PdfReader(inFile), new PdfWriter(outFile));

    Document document = new Document(pdfDoc);
    int numberOfPages = pdfDoc.getNumberOfPages();

    Rectangle pageSize;

    // Loop over the pages of document
    for (int i = 1; i <= numberOfPages; i++) {

        pageSize = pdfDoc.getPage(i).getPageSize();

        if(pageSize.getWidth() != 595.00f) {
            img.setFixedPosition(pageSize.getWidth() - (595-img.getImageWidth()),img.getImageHeight());
        }
        if(pageSize.getHeight() != 842.00f) {
            img.setFixedPosition(img.getImageWidth(), pageSize.getHeight() - (842-img.getImageHeight()));
        }

        document.add(img);
    }
}

我需要將圖像添加到相對於頁面的右上角,但是現在它將其添加到屏幕右側的中間。

添加圖像時,是否可以在itext7中設置絕對位置? 圖像並不總是在相同的位置上,確切的寬度和高度,所以使用固定位置對我來說是個問題。

我不知道為什么你需要兩種情況你for循環。 如果您的目標是將圖像放置在頁面的右上角,並且知道圖像的寬度和高度以及頁面的寬度和高度,那么您要做的就是計算要傳遞給setFixedPosition方法的坐標。

setFixedPosition接受xy坐標,它們是PDF坐標系中圖像的左下角坐標,即從左到右,從上到下。

因此,您需要從頁面寬度中減去圖像寬度,並對高度進行相同操作,這將導致以下情況:

img.setFixedPosition(pageSize.getWidth() - img.getImageWidth(), pageSize.getHeight() - img.getImageHeight());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM