簡體   English   中英

使用iTextSharp提取PDF文檔的ID

[英]Extract ID of a PDF document using iTextSharp

我需要提取文檔的預告片部分中提到的PDF標識符。 但是我無法獲得那個價值。 例如。 我的pdf文件中提到了以下內容:

trailer
<</Size 196/Prev 370761/Root 160 0 R/Info 158 0 R/ID[<30EB7FCBB6756E461176FBBD0CEBA7B9><DB67D6D43AE0FA4FBF8CC171FC66790A>]>>

我需要提取值30EB7FCBB6756E461176FBBD0CEBA7B9 使用PdfReader.Trailer ,如果將一個鍵作為“ ID”,我會得到一種字典類型的對象,但是我無法從中獲得以上要求的值。

使用PdfReader.Trailer ,如果將一個鍵作為“ ID”,我會得到一種字典類型的對象,但是我無法從中獲得以上要求的值。

查看PdfReader.Trailer您幾乎可以看到:

public PdfArray GetId(string FileName)
{
    using (PdfReader pdfReader = new PdfReader(FileName))
    {
        return pdfReader.Trailer.GetAsArray(PdfName.ID);
    }
}

此方法返回文檔的ID,即兩個字節字符串的數組。

您似乎對ID的十六進制表示感興趣。 您可以這樣輸出:

public void PrintId(PdfArray Id)
{
    if (Id != null)
    {
        StringBuilder builder = new StringBuilder();
        builder.Append("ID: ");
        foreach (PdfObject o in Id)
        {
            builder.Append("<");
            foreach (byte b in ((PdfString)o).GetBytes())
                builder.AppendFormat("{0:X}", b);
            builder.Append(">");
        }
        Console.WriteLine(builder.ToString());
    }
}

(我對.Net不太精通,因此可能有許多更優雅的方法來創建字節數組的十六進制轉儲。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM