2011-11-24 34 views
-6

我想將這段代碼轉換爲PHP,它是一個隱藏PDF文件圖層的函數,但我不明白它是如何實現的。這是什麼C#代碼做和轉換爲PHP?

 public static void HidePDFLayers(string pdf_file, string output_file) 
    { 
     PdfReader reader = new PdfReader(pdf_file); 
     PdfStamper stamp = new PdfStamper(reader, new FileStream(output_file, FileMode.Create)); 

     pdf_num_pages = reader.NumberOfPages; 
     Dictionary<string, PdfLayer> layers = stamp.GetPdfLayers(); 

     int count = 0; 

     foreach(KeyValuePair<string, PdfLayer> entry in layers) 
     { 
      PdfLayer layer = (PdfLayer)entry.Value; 
      layer.On = false; 
      count++; 
     } 

     stamp.Close(); 

     Console.WriteLine("[*] Number Of Layers Hidden: " + count); 
     PDFToImages(output_file); 
    } 

這是否創建一個隱藏的所有層的新型PDF(該層,當然,如果他們都隱藏,然後就什麼也沒有對PDF?)

我會怎麼做與PHP相同?

+0

你在PHP版本中使用了'PdfReader'嗎? –

+2

這看起來像iTextSharp給我。有沒有PHP端口?你會自己寫PDF操作代碼嗎? – ChaosPandion

+0

感謝-2個人,這是一個真正的問題,我認真需要幫助,對不起,我沒有閱讀C#這麼好,但這是爲什麼我要問這個問題。 – Alasdair

回答

2

正如您在這裏看到的http://api.itextpdf.com/itext/com/itextpdf/text/pdf/PdfStamper.html文檔所述,它可以獲取PDF文檔中的圖層。所以我認爲它可以獲取PDF文檔中的所有圖層。

然後它遍歷所有圖層,將它們的可見性設置爲false,從而隱藏它們。

PS。你對這些缺點的評價越多,你就越想得到;)

+0

謝謝。我並不在乎自己是否有缺點,這只是這裏的人們如此精英主義以至於給某人一個問初學者問題的否定的原則。我們都必須從某個地方開始。 – Alasdair

+0

@Alasdair - 你必須明白你在這裏問過的問題有多糟糕。你不知道他的代碼是什麼?它是使用的語法還是庫?還要考慮這個答案並不能解釋如何將該代碼轉換爲PHP。至於是精英主義者,那麼你可能是對的。 – ChaosPandion

+0

這個問題很糟糕,我同意,但那是因爲我從未在我的生活中寫過C#代碼。我有這個代碼,它不起作用,必須重寫它,而我所能做的就是用PHP重寫它,因爲這就是我所知道的。幸運的是,我可以理解C#所做的大部分工作,因爲它離PHP不太遠,但是我無法理解這個函數。這裏的每個人都明顯地認爲我是一個非常糟糕的C#開發人員,但我根本不是C#開發人員,只有一個PHP開發人員處於粘性狀態,有些代碼我不明白必須修復,因爲編寫它的人沒有正確完成它。 – Alasdair