Đã nhìn vào làm một cái gì đó như thế này, vì vậy tôi nghĩ rằng tôi muốn vượt qua những gì tôi tìm thấy dọc.
Đây là mã để tạo bản pdf gốc của tôi bằng cách sử dụng văn bản.
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()
}
}
}
Nếu bạn mở pdf, bạn sẽ thấy văn bản ở góc trên bên trái. Đây là bài kiểm tra cho thấy những gì bạn đang tìm kiếm.
@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.")
}
Vị trí (0, 0) là góc trên bên trái của tài liệu. Chiều rộng và chiều cao đang đi xuống và sang phải. Tôi đã có thể cắt giảm phạm vi một chút xuống (35, 52, 120, 3) và vẫn nhận được bài kiểm tra để vượt qua.
Tất cả các mã được viết bằng groovy.
Đơn vị là bao nhiêu? – ipavlic
Đơn vị mặc định là điểm pt (điểm) tôi nghĩ. –
Nhưng làm thế nào để xác định tổng 'chiều rộng' /' chiều cao' của một tệp PDF? nghĩa là độ rộng 'chiều rộng' (' chiều cao ') có thể là gì đối với tệp PDF? –