簡體   English   中英

獲取 Vector Graphics(位圖圖形)的邊界框尺寸 PDFBOX Java

[英]Get bounding box dimensions of Vector Graphics (bitmap graphics) PDFBOX Java

我有一些 PDF 文檔,它們的主要內容是矢量圖形(位圖圖形)。 像下面這樣。

重要提示:這些是 PDF 中唯一的運算符類型。 它不包含文本、圖像或其他類型的對象。 (我使用 PDFBox 調試器查看了所有內容)。

q
  0.75 0 0 -0.75 36.12 573.96 cm
  0 0 0 rg
  0 0 m
  2.24 0 l
  2.24 5.92 l
  3.04 5.92 l
  3.04 0 l
  5.28 0 l
  5.28 -0.8 l
  0 -0.8 l
  0 0 l
  h
  f
Q
q
  0.75 0 0 -0.75 43.800003 572.04 cm
  0 0 0 rg
  0 0 m
  0 -1.44 -0.96 -1.76 -1.76 -1.76 c
  -2.56 -1.76 -3.04 -1.28 -3.2 -0.96 c
  -3.2 -0.96 l
  -3.2 -3.36 l
  -4 -3.36 l
  -4 3.36 l
  -3.2 3.36 l
  -3.2 0.64 l
  -3.2 -0.64 -2.56 -0.96 -1.92 -0.96 c
  -1.12 -0.96 -0.8 -0.64 -0.8 0.16 c
  -0.8 3.36 l
  0 3.36 l
  0 0 l
  h
  f
Q

.
.
.

以“Q”結尾的每個“q”塊似乎都是一個小圖像(我的文檔中的字符)。

這是它在 Adob​​e Acrobat 中的視覺效果:截取自 Adob​​e Acrobat的屏幕截圖

我需要確定邊界框的值(尺寸,例如 XY 坐標和寬度和高度),就像它們只是一個對象一樣。 如下所示: Adobe Acrobat 的邊界框表示

如上所述,我確定每個“字符”都是 PDF 內容中的“q 和 Q”運算符塊。

我想知道我們是否可以像 Adob​​e Acrobat 那樣使用 JAVA 和 PDFBOX 獲得這些尺寸(大邊界框)。

遵循此處發布的相同方法:

pdfbox 2.0.2 > PageDrawer.processPage 方法的調用捕獲異常

他們提到應該將邏輯放在“strokePath()”方法上,但是對於@TilmanHausherr 提到的我的情況,我使用“fillPath()”在那里編寫我的邏輯。

請注意,您定義的類應該是從 PDFGraphicsStreamEngine 擴展而來的。

暫無
暫無

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

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