2010-11-15 113 views
2

我知道對於Python而言,這種解決方案已經存在(http://pybrary.net/pyPdf/)。但我希望有人可以爲這個問題建議一些C#庫。如何從.pdf文件中使用c提取標題#

+0

請在PDF中定義*標題* – 2010-11-15 16:37:57

+1

http://stackoverflow.com/q/1276028/352101 – Bolu 2010-11-15 16:41:36

+0

對於「標題」,我的意思是當你打開一些.pdf文件時,你可以在窗口標題中看到的內容。 – apros 2010-11-15 16:48:39

回答

2

在.NET中處理PDF文件的常用庫是iTextSharp,它是iText庫的一個端口。這裏有一個例子:

class Program 
{ 
    static void Main() 
    { 
     PdfReader reader = new PdfReader("test.pdf"); 
     var title = reader.Info["Title"]; 
     Console.WriteLine(title); 
    } 
} 
1

如何:

http://glenswords.wordpress.com/2007/07/16/extract-the-title-of-a-pdf-using-c/ 
+0

+1。你可能想在'<<'和'/ Title'之間添加一些東西,因爲像'/ CreationDate'這樣的東西可能會首先出現。這絕對是作弊行爲,並且是一種骯髒的破爛手段(並且使用該解決方案作爲書面材料可能是一個壞主意),但它比其他解決方案更具優勢,不需要巨大的庫來實現相當小的功能。 – Brian 2010-11-15 16:48:07

+0

我完全同意Brian作爲小功能燈光解決方案 – apros 2010-11-15 17:14:33

0

一種可以替代的iTextSharp的是PDFBOX。有關使用它的說明,請參閱CodeProject Tutorial。由於您基本上正在運行C#Java VM,所以這有點難看,但實際上它非常易於使用。

0

如果通過「標題」表示PDF中「預告片」的元數據中的標題關鍵字,則可以使用多種不同的工具。 iTextSharp會做到這一點,雖然我不知道API足夠好給你代碼。

如果使用dotImage,從Atalasoft(我工作的地方,並順便提一句,我寫了這個代碼),你可以這樣做:

PdfDocumentMetadata metadata = PdfDocumentMetadata.FromStream(sourceStream); 
Console.WriteLine("Title is \"{0}\"", metadata.Title); 

此類還爲您提供了作者,主題,關鍵詞,創建者, Producer,CreationDate,ModificationDate,Trapped和自定義字段。

如果你正在討論在PDF中嵌入XMP的標題 - 嗯,這完全是另外一回事,我還沒有支持將它拉出來。

+0

非常感謝您的發佈。從我的觀點來看,你的解決方案似乎對商業圖書館的問題最具吸引力。 – apros 2010-11-15 17:18:21