Чтение PDF: Как узнать каждый слой объекта - PullRequest
0 голосов
/ 13 января 2020

Я пытаюсь читать файлы PDF, созданные AutoCAD. Я хочу знать слои объектов и, если возможно, какие объекты считаются блоком.

Вот сгенерированный файл PDF, и я преобразовал его в строку.

"%PDF-1.6
%ޭ��
3 0 obj
<<  /Length 183 /Filter /FlateDecode /DecodeParms
<<  /Predictor 1
>>
>>
stream
x�E�A
�0\u0010E�\u0003���f�$m��R\u0010D��k)R�V���흴j\t\f����'5g\r\u0015_\u0004v�\nuGt���H[N\u0005�\u0011lf���@N8�J\f\u0016ޕ_�\u001bJʽ�\u0016̓\u001c^3�_�X!�\u0004$���(\u0002�O=83>��q�NK�O���i�{K\u0560\u001b$#�\u0004Iqz��S�\u001f�\b\u0015���\u0013�Q���v\u0588�M�`r�K\u0018�\fF�(��\u0010E\f��\a\u0010�8�
endstream
endobj
4 0 obj
<< /Type /ExtGState /BM /Normal /CA 1.00000 /ca 1.00000
>>
endobj
1 0 obj
<< /Type /OCG /Name (mad)
>>
endobj
2 0 obj
<< /Type /OCG /Name (0)
>>
endobj
6 0 obj
<< /Type /Page /Parent 5 0 R /MediaBox [0 0 612 792] /Contents [3 0 R
] /Rotate 270 
 /VP [
<<  /Measure
<<  /Subtype /RL
 /A [
<<  /C 1 /U ( )
>>]
 /D [
<<  /C 1 /U ( )
>>]
 /X [
<<  /C 0.06451 /U ( )
>>]
 /R ( ) /Type /Measure
>> /Type /Viewport /BBox [16 50 317 741]
>>] /Resources
<<  /ProcSet [ /PDF]
 /ExtGState
<<  /GT255 4 0 R
>>
 /Properties
<<  /oc1 1 0 R /oc2 2 0 R
>>
>>
>>
endobj
5 0 obj
<< /Type /Pages /Kids [6 0 R
] /Count 1
>>
endobj
7 0 obj
<< /Type /Catalog /Pages 5 0 R /OCProperties
<<  /OCGs [ 1 0 R 2 0 R]  /D
<<  /Order [ 2 0 R 1 0 R] /OFF []
>>
>> /PageMode /UseOC /PageLayout /SinglePage /PageLabels
<<  /Nums [0
<<  /P <feff005b0031005d0020004d006f00640065006c>
>>]
>> /PageMode /UseOutlines /Outlines 8 0 R
>>
endobj
10 0 obj
<<  /Title <feff004d006f00640065006c>  /Parent 9 0 R /Dest [6 0 R  /Fit]
>>
endobj
9 0 obj
<<  /Title <feff00530068006500650074007300200061006e0064002000560069006500770073>  /Parent 8 0 R /Count 1 /First 10 0 R /Last 10 0 R
>>\nendobj
8 0 obj
<< /Type /Outlines /Count 1 /First 9 0 R /Last 9 0 R
>>
endobj
11 0 obj
<<  /Creator (AutoCAD 2018 - English 2018 \\(22.0s \\(LMS Tech\\)\\)) /Title (Model) /Producer (pdfplot14.hdi 14.00.049.000) /CreationDate (D:20200109121008) /ModDate (D:20200109121008)
>>
endobj
xref
0 12
0000000000 65535 f 
0000000378 00000 n 
0000000422 00000 n 
0000000015 00000 n 
0000000304 00000 n 
0000000865 00000 n 
0000000464 00000 n 
0000000923 00000 n 
0000001460 00000 n 
0000001309 00000 n 
0000001217 00000 n 
0000001531 00000 n 
trailer
<<  /Size 12 /Root 7 0 R /Info 11 0 R
>>
startxref
1732
%%EOF\r"

Исходя из того, что я понимаю, 1 0 obj и 2 0 obj - это два слоя, так как там есть тип OCG

Я не знаю, как найти объекты или текст, которые нарисованы этими двумя слоями. Любая помощь, пожалуйста?

...