2012-05-23 121 views
-5

我正在尋找一種將註釋添加到PDF的方式,只使用純C/C++(沒有第三方庫)。使用普通C/C++添加註釋到PDF

我該如何得到這個結果?

+4

獲取PDF規範並以純文本形式操作PDF文件。 – Eimantas

+0

我在尋找一個例子 –

+2

如果你真的不想要第三方庫,那麼你將不得不依靠規範工作。你很可能找不到任何簡單的例子。 – Bart

回答

4

這裏是PDF Reference Document Third Edition

PDF文件由不同的二進制對象組成,可以使用不同的算法,壓縮方案(有損和無損)和編碼過濾器進行壓縮,編碼或加密。每個對象都在引用表中被引用,幷包含它在文件中的位置信息。 您需要知道如何處理這個表格,您將需要實現所有可能的壓縮方案,編碼過濾器和加密算法,然後您將必須處理所有可能的PDF對象結構。

在PDF規範中,這些對象稱爲字典,它們由條目組成。每個條目都有一個類型,可以是簡單類型,也可以是其他字典(或對其的引用),也可以是一個包含這些元素類型的數組。所以我們可以說PDF基本上是一個字典對象樹。

一旦你的代碼能夠處理與規範中每一個可能的解釋,並與樹狀結構,你可以去第八章 - 互動功能規範的,部分8.4 - 註釋,並實施將註釋字典添加到PDF文件的方式。

您應該注意到,我甚至沒有提到PDF文件的熱門話題,例如頁面內的字體,顏色空間,幻燈片和繪圖指令。我假設你將能夠加載文件中的所有對象,創建一個註釋對象,以某種方式將它插入到對象樹中,並「保持原樣」再次保存所有對象。這或多或少是iText的工作原理,所以如果你真的想實現這個功能,你可以看看iText的源代碼,這樣你就可以有一個這樣的項目需要的工作量的小窗口。您可能還想看看this answer in SO