stava cercando a fare qualcosa come questo, quindi ho pensato di passare quello che ho trovato lungo.
Ecco il codice per creare il mio pdf originale usando itext.
import com.lowagie.text.Document
import com.lowagie.text.Paragraph
import com.lowagie.text.pdf.PdfWriter
class SimplePdfCreator {
void createFrom(String path) {
Document d = new Document()
try {
PdfWriter writer = PdfWriter.getInstance(d, new FileOutputStream(path))
d.open()
d.add(new Paragraph("This is a test."))
d.close()
} catch (Exception e) {
e.printStackTrace()
}
}
}
Se apri il pdf, vedrai il testo nell'angolo in alto a sinistra. Ecco il test che mostra quello che stai cercando.
@Test
void createFrom_using_pdf_box_to_extract_text_targeted_extraction() {
new SimplePdfCreator().createFrom("myFileLocation")
def doc = PDDocument.load("myFileLocation")
Rectangle2D.Double d = new Rectangle2D.Double(0, 0, 120, 100)
def stripper = new PDFTextStripperByArea()
def pages = doc.getDocumentCatalog().allPages
stripper.addRegion("myRegion", d)
stripper.extractRegions(pages[0])
assert stripper.getTextForRegion("myRegion").contains("This is a test.")
}
La posizione (0, 0) è l'angolo in alto a sinistra del documento. La larghezza e l'altezza si stanno abbassando e verso destra. Sono stato in grado di ridimensionare un po 'il range (35, 52, 120, 3) e comunque far passare il test.
Tutto il codice è scritto in groovy.
Quanto costa un'unità? – ipavlic
L'unità predefinita è il punto (punto), penso. –
Ma come determinare il totale 'width' /' height' di un file PDF? cioè quanto grande 'width' (' height') può essere per un file PDF? –