Получите свободное место в определенном месте в инструменте PDFBox на Java - PullRequest
0 голосов
/ 06 июня 2018

Я использую PDFBox для размещения динамического текста на основе текста в PDF.Я прочитал каждую страницу в формате PDF, нашел текст в формате PDF и поместил соответствующий соответствующий текст вокруг его места.Но текст помещается поверх другого текста или поля или строки.Мне нужно разместить динамически согласованный текст в свободном пространстве.Но я не смог найти способ найти свободное место в окружающем месте текста PDF, используя Java PDFbox.Пожалуйста, найдите наш код ниже.

package com.mycompany.pdfboxsample;

import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.pdfbox.cos.COSBase;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDResources;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObject;
import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObjectForm;
import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObjectImage;



/**
 *
 * @author Gayathri.R
 */
public class MainClass {
    public static void main(String[] args) throws IOException {
    try{
        PDDocument document = null; 
        document = PDDocument.load(new File("C:\\Gayathri\\Smartacrf\\sample\\ItextSample\\oldcrf20.pdf")); 
        List pages = document.getDocumentCatalog().getAllPages();
        Iterator iter = pages.iterator(); 
        while (iter.hasNext()) {
            PDPage page = (PDPage) iter.next();
            PDResources resources = page.getResources();
            Map<String,PDXObject> pageImages = resources.getXObjects();
            if (pageImages != null) { 
            Iterator imageIter = pageImages.keySet().iterator();
            while (imageIter.hasNext()) {
                String key = (String) imageIter.next();
                PDXObjectForm image = (PDXObjectForm) pageImages.get(key);
                COSBase cosObject = image.getCOSObject();
                System.out.println("Finded");
                float lowerleftx =image.getBBox().getLowerLeftX();
                float upperleftx =image.getBBox().getLowerLeftY();
                float lowerlefty =image.getBBox().getUpperRightX();
                float upperlefty =image.getBBox().getUpperRightY();
                float width =image.getBBox().getWidth();
                float height =image.getBBox().getHeight();

            }
            }
        }

    }   
    catch(Exception ex)
    {
    System.out.println(ex);
    }
}
...