为什么此PDF元数据无效?

为什么此PDF元数据无效?,pdf,text,pdf-generation,Pdf,Text,Pdf Generation,我需要帮助了解如何使此文档符合要求。 任何其他的建议都会很好 我一直在挖掘各种例子、教程和官方文件;我想我已经接近解决方案了 “hello world”文本显示在MediaBox中,但元数据不可访问 规则似乎很清楚,但pdfinfo或File>Properties不会显示Title之类的内容 %PDF-1.1 ¥±˫ % Metadata (referenced by trailer /Info) 0 0 obj /Title (simple 80x25 text PDF)

我需要帮助了解如何使此文档符合要求。 任何其他的建议都会很好

我一直在挖掘各种例子、教程和官方文件;我想我已经接近解决方案了

“hello world”文本显示在MediaBox中,但元数据不可访问

规则似乎很清楚,但pdfinfo或File>Properties不会显示Title之类的内容

%PDF-1.1
¥±˫

% Metadata (referenced by trailer /Info)
0 0 obj
  /Title        (simple 80x25 text PDF)
  /Subject      (test PDF)
  /Producer     (simple.80x25.text.PDF.py)
  /Creator      (gvim)
  /Keywords     (PDF test)
  /CreationDate (D:2018021300000-05'00')
endobj

% Content (referenced by trailer /Root)
1 0 obj
  <<
    /Type /Catalog /Pages 2 0 R
  >>
endobj

% Text display box (referenced by 1 0 obj)
2 0 obj
  << /Type /Pages /Kids [3 0 R] /Count 1 /MediaBox [0 0 480 300] >>
endobj

% Text font (referenced by 2 0 obj)
3 0 obj
  << /Type /Page /Parent 2 0 R /Resources
    << /Font
      << /F1
        << /Type /Font /Subtype /Type1 /BaseFont /Courier >>
      >>
    >>
    /Contents 4 0 R
  >>
endobj

% Text to be displayed in the box (referenced by 3 0 obj)
4 0 obj
  << /Length 5 0 R >>
stream
  BT
    /F1 10 Tf 12 TL 0 290 Td
    (hello world) Tj
  ET
endstream
endobj

% Main (collect resources for reference from entrypoint)
trailer
  << /Root 1 0 R /Info 0 0 R /Size 6 >>

startxref 0
%%EOF

文档信息从1开始,并将键放在dictionary对象中,您的示例缺少>:


文档中没有外部参照,因此无法定位一个对象。如果此文本转储与实际PDF不同,请将其发布到某个在线位置并添加链接。。。由于Acrobat Reader在打开后要求保存PDF,所以该最小且不存在的外部参照表可能由Acrobat Reader重建。这是一个强有力的迹象,它发现了一些需要修复的东西。这完全是手写的。这不是垃圾场。我还不懂外部参照的用法。如果要添加外部参照,我必须计算这些值。我没有找到外部参照公式的文档。但我真的不明白外部参照如何解决这个问题。请解释。从startxref上的PDF参考:以下是交叉参考条目本身,每行一条。每个条目的长度应正好为20字节,包括行尾标记[…],其中nnnnnnnn应为解码流中的10位字节偏移量。它们指向每个对象的起点。顺便说一句,保留第一个条目0 obj。你确定你正确地遵循了规格吗?我会将0 0 obj更改为更好的。我没有看到保留的。我不理解外部参照的作用。我假设它们是用来浏览文档的,而本文档不需要导航。你能解释一下外部参照的作用吗,这样我就可以插入一个合适的外部参照了?太好了!非常感谢。缺少>是问题所在。我仍将尝试处理外部参照,但现在可以推迟处理。
% Metadata (referenced by trailer /Info)

1 0 obj
<<
  /Title        (simple 80x25 text PDF)
  /Subject      (test PDF)
  /Producer     (simple.80x25.text.PDF.py)
  /Creator      (gvim)
  /Keywords     (PDF test)
  /CreationDate (D:2018021300000-05'00')
>>
endobj