- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
根据 Adobe 的“文档管理 - 可移植文档格式 - 第 1 部分:PDF 1.7” ( Pdf32000_2008.pdf ),第 12.3.2.1 节指出:
A destination defines a particular view of a document, consisting of the following items:
The page of the document that shall be displayed
The location of the document window on that page
The magnification (zoom) factor
示例:
[页面/XYZ左上缩放]
但是在我的代码中
CGPDFArrayGetObject(dArray, 0, &dObj)
是一个CGPDFDictionaryRef
。
93 0 obj
<< /Type /Annot
/Subtype /Link
/Rect [71 717 190 734]
/Border [16 16 1]
/A << /Type /Action
/S /GoTo
/D [3 0 R /FitR –4 399 199 533]
>>
>>
endobj
如何从 /D [3 0 R/FitR –4 399 199 533]
获取 3 0 R
?
如何获得对页面对象(如 [page/XYZ left top Zoom]
的页面对象)的间接引用?
这是我的代码:
CGPDFPageRef pdfPage = CGPDFDocumentGetPage(pdfRef, pageNum);
CGPDFDictionaryRef pageDictionary = CGPDFPageGetDictionary(pdfPage);
CGPDFArrayRef outputArray;
if(CGPDFDictionaryGetArray(pageDictionary, "Annots", &outputArray))
{
int arrayCount = 0;
arrayCount = CGPDFArrayGetCount(outputArray );
if(arrayCount>0)
{
for( int j = 0; j < arrayCount; ++j )
{
CGPDFObjectRef aDictObj;
if(CGPDFArrayGetObject(outputArray, j, &aDictObj))
{
CGPDFDictionaryRef annotDict;
if(CGPDFObjectGetValue(aDictObj, kCGPDFObjectTypeDictionary, &annotDict))
{
CGPDFDictionaryRef aDict;
if(CGPDFDictionaryGetDictionary(annotDict, "A", &aDict))//page 1 returns here
{
CGPDFArrayRef dArray;
if(CGPDFDictionaryGetArray(aDict, "D", &dArray))
{
CGPDFObjectRef dObj;
if(CGPDFArrayGetObject(dArray, 0, &dObj)){
CGPDFDictionaryRef annotDict;
if(CGPDFObjectGetValue(dObj, kCGPDFObjectTypeDictionary, &annotDict))
{
}
}
}
}
}
}
}
}
}
<小时/>
非常感谢您的重播~但是我有一个问题我在哪里可以知道这个对象编号是3?
CGPDFArrayGetObject(dArray, 0, &dObj)
获取CGPDFDictionaryRef,但我没有找到字段为“3 0 R”
还有一个问题,如果我知道是“3 0 R”
在您的 PDF 中搜索 3 0 obj 可以在哪里找到
谢谢您的回复,非常非常感谢...我希望再次得到您的答复!
最佳答案
首先,您引用了 PDF 引用文档第 366 页表 151 中的错误示例,因为它与您的情况不符:
[page /XYZ left top zoom]
与您的情况相符的真实示例是:
[page /FitR left bottom right top]
含义:
Display the page designated by page, with its contents magnified just enough to fit the rectangle specified by the coordinates left, bottom, right, and top entirely within the window both horizontally and vertically. If the required horizontal and vertical magnification factors are different, use the smaller of the two, centering the rectangle within the window in the other dimension.
因为您的案例被引用为:
[3 0 R /FitR –4 399 199 533]
现在,示例中称为 page
的内容在您的情况下变为 3 0 R
。后者是对 3 号对象(第 0 代)的引用,您可以通过在 PDF 中搜索 3 0 obj
找到该对象。这是定义对象编号 3 的位置,该对象应该为您的目的地所查找的页面
命名。
更新:如果您的真实文档确实包含代码段[3 0 R/FitR –4 399 199 533]
,那么同一文档还应该包含另一部分它将页面对象(间接引用)定义为 3 0 obj
。这部分定义了页面对象,可以这样读:
3 0 obj
<< /Type /Page
/Parent 11 0 R
/MediaBox [ 0 0 597.6 842.4 ]
/Contents 31 0 R
/Group <<
/Type /Group
/S /Transparency
/CS /DeviceRGB
>>
/Resources 23 0 R
>>
endobj
请注意,该对象如何再次引用其他三个对象:11 0 R
、31 0 R
和 23 0 R
。后两个指向对象 31 和 23,它们保存页面的内容 (31) 和资源 (23),例如字体,由它使用。第一个指向该页面的父对象 (11)。
注释 2:对象的编号不需要像 PDF 文件中出现的对象一样按顺序进行。 (几乎)唯一的条件是编号是唯一的。
关于iphone - 如何使用 CGPDF 间接引用页面对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6293789/
根据 Adobe 的“文档管理 - 可移植文档格式 - 第 1 部分:PDF 1.7” ( Pdf32000_2008.pdf ),第 12.3.2.1 节指出: A destination de
我对过去两天没有找到任何与 CGPDF 相关的适当文件感到震惊。我尝试了所有可能的方法,但我失败了。这就是我想要做的。我有一个要显示的 PDF,我正在 UIWebView 中显示它。我使用 pdf 所
我在 iOS 10 下使用 CGPDF 保存一个 PDF 文件。为此,我加载一个现有的 PDF 页面,并将其写入一个带有上下文的新文件。这样做时,旋转信息会丢失,生成的 PDF 文件会将所有页面重新排
是否有任何方法可以使用 CGPDF 创建 PDF 对象(例如,带有自定义 PDF 生产者/消费者/查看者所需参数的 PDF 字典),或者我是否必须编写自己的解析器并创建新预告片、外部参照等以便向 PD
多年来,我一直在努力尝试为 iPhone/iPad 制作一个可用的 PDF 阅读器,但它永远不会停止消耗内存。看来所有用CGContextDrawPDFPage绘制的页面都被内部缓存起来,永远不会释放
给定pdf文档的页面,我希望能够使用objetive-C找到文本的页边距。 我意识到已经有很多与CGPDF...有关的问题,但是我找不到任何有用的东西。我也看过了PDF规范文档。我确定它一定在某个地方
我正在为工作编写一个 PDF 解析器,我们正在使用 Core Graphics 通过回调读取所有数据,然后使用 Lib Haru 将其写出,因为我们的客户需要写出“真实”注释和 CG做不到。 好吧,我
我正在制作一个 PDF 阅读器,它对大多数 PDF 都能很好地工作。在使用一堆不同的文档(在 iPad 上)进行测试时,我发现一个会使应用程序崩溃的文档 - 它大量使用矢量图形和图像,所以我并不感到惊
我有一个 pdf 文件,我想在 ipad 上渲染它。但是我不知道如何获取命名目的地以及如何在 ipad 上执行 GoTo Action。 Names > Dests > Kids > Names >
我需要在 iOS 中创建一个 pdf 查看器应用程序。我发现使用 Quartz CGPDF 可以实现这个我找不到合适的开始。我检查了苹果文档。 https://developer.apple.com/
我试图在 PDF 文档的页面上找到所有超链接,并在它们上面放置一个 UIButton。 我已经找到并试用了下面的脚本,它应该能够做到这一点。它找到超链接并将 UIButtons 放置在它们不在链接顶部
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 7 年前。 Improve this ques
这里有人有使用 CGPDF*(即 native API)在 iOS 中渲染多层 PDF 的经验吗?您能分享一下您的经验吗?您遇到性能问题了吗? 最佳答案 PDF 图层在 PDF 规范中称为可选内容。它
我是一名优秀的程序员,十分优秀!