[英]Undocumented windows built-in PDF renderer capabilities?
使用Windows.Data.Pdf
命名空間,我可以在不使用任何第三方庫的情況下渲染 pdf(作為圖像)。
如果我沒記錯的話,Microsoft 的 Edge 瀏覽器使用相同的庫來呈現 pdf (Windows.Data.Pdf.dll)。 通過查看官方Windows.Data.Pdf
文檔,我可以看到它只是關於
將可移植文檔格式 (PDF) 文檔中的頁面轉換為圖像文件。
但是,Edge 瀏覽器在呈現 pdf 時具有“搜索文本”功能,我在Windows.Data.Pdf
庫中找不到任何地方。
我的問題是,在Windows.Data.Pdf
命名空間(或 Windows 內置的其他地方)中是否有任何未記錄(因此非官方)的功能可用? (具體來說,搜索文本 function,我假設我必須能夠 a)提取 pdf 的文本,以便我可以在其上進行搜索,以及 b)獲取呈現頁面上出現的字符串的 XY,以便我可以以某種方式突出顯示它)
常規Windows 10應用程序使用的庫與windows.data.pdf.dll
,它只是Windows.Foundation.UniversalApiContract
定義的命名空間。
另一方面, Windows.Data.Pdf.dll
是本機函數庫,因此您需要查看是否可以使用DllImport
來使用它。
編輯:這是Windows.Data.Pdf.dll
DependencyWalker的輸出,您可能感興趣的功能可能是PdfCreateRenderer
對不起,我的回復很晚,但我想永遠不會太晚。 Windows.Data.Pdf僅支持呈現操作。 Windows.Data.Pdf庫中未公開特定於格式的操作(如搜索,注釋枚舉等)。 Windows組件也不依賴Windows.Data.Pdf
我的問題是,在 Windows.Data.Pdf 命名空間(或 Windows 內置的其他地方)中是否有任何未記錄(因此非官方)的功能可用? (具體來說,搜索文本 function,我假設我必須能夠 a)提取 pdf 的文本,以便我可以在其上進行搜索,以及 b)獲取呈現頁面上出現的字符串的 XY,以便我可以以某種方式突出顯示它)
C:\Windows\system32\Windows.Data.Pdf.dll 文件(與 Kanadaj 指出的Windows.Data.Pdf
命名空間不同)確實提供了文本提取功能。 但是,此功能不是作為 .NET 庫提供的,而是通過 Windows 搜索使用的IFilter接口提供的。
這是使用 nirsoft 的 SearchFilterView 工具的屏幕截圖:
IFilter是一個 COM 接口,而不是 .NET 接口。 它可以從 .NET 代碼開始使用,盡管需要一些翻譯樣板。 此相關問題包含所有詳細信息和代碼示例:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.