C#打開一個文件的操作詳解
C#打開一個文件的操作在我們實際的開發(fā)中是常見的需求實現(xiàn),那么具體的操作實例是什么呢?C#打開一個文件所涉及的問題和注意事項有哪些呢?現(xiàn)在我們就來看看具體的實現(xiàn):
在你寫入任何實際數(shù)據(jù)之前,你可能希望通過以下幾種方法寫入一些關(guān)于本文檔的摘要:
- public boolean addTitle(String title)
- public boolean addSubject(String subject)
- public boolean addKeywords(String keywords)
- public boolean addAuthor(String author)
- public boolean addCreator(String creator)
- public boolean addProducer()
- public boolean addCreationDate()
- public boolean addHeader(String name, String content)
你可以選擇自己的標題、主題、關(guān)鍵字、作者、創(chuàng)建程序,但以下產(chǎn)品信息將始終被添加:iTextSharp (或者iTextSharp的引用)和創(chuàng)建時間(實際上這兩種方法是自動調(diào)用的)。
你還可以將自定義的名稱添加為“報頭信息”,但是這對于PdfWriter沒有任何作用,如果看看實例產(chǎn)生的pdf文件的“文檔屬性”,我們可以看到僅僅有PDF創(chuàng)建程序和產(chǎn)品日期。
C#打開一個文件前要做的事:
你只能在Open方法調(diào)用之前添加摘要,這是iText開發(fā)工具提供的一個選擇。
在HTML中,報頭信息被放在文檔前面報頭標識中間,調(diào)用Open方法將導(dǎo)致報頭信息寫入流,因而在Document被打開后無法更改這些數(shù)據(jù)。
該行顯示生成的文檔是一個版本為1.2的PDF格式的文件,在PDF中,摘要保存在PdfInfo對象中,當(dāng)文檔關(guān)閉時已經(jīng)寫入PdfWriter中了,因此,沒有關(guān)于為什么不能修改庫來滿足任何時候添加或更改摘要的技術(shù)原因。
C#打開一個文件之頁面初始化
Open方法在不同的Witer中同時會產(chǎn)生初始化事件,舉例來說,如果你需要一個水印或者頁眉頁角對象出現(xiàn)在文檔***頁的開始處,你需要在打開文檔前添加這些,同樣的用于設(shè)置該文檔其他頁水印、頁眉、頁角、頁數(shù)和尺寸。
當(dāng)調(diào)用下列方法:
- public bool setPageSize(Rectangle pageSize)
- public bool Add(Watermark watermark)
- public void removeWatermark()
- setting Header property
- public void resetHeader()
- setting Footer property
- public void resetFooter()
- public void resetPageCount()
- setting PageCount property
產(chǎn)生的結(jié)果只能在下一個新頁中看到(當(dāng)在本頁調(diào)用初始化方法時),代碼見示例代碼0107,你必須要準備一張名為watermark.jpg的圖片,如下圖:
C#打開一個文件之閱讀器參數(shù):
你可以通過下面的辦法為PDF文件指定一些閱讀器 (如Adobe Reader) 參數(shù):
- public void setViewerPreferences(int preferences)
- writerA.setViewerPreferences(PdfWriter.PageLayoutTwoColumnLeft);
- writerB.setViewerPreferences(PdfWriter.HideMenubar | PdfWriter.HideToolbar);
- writerC.setViewerPreferences(PdfWriter.PageLayoutTwoColumnLeft |
- PdfWriter.PageModeFullScreen | PdfWriter.NonFullScreenPageModeUseThumbs);
正如你所看到的,參數(shù)可以使用以下一些常量:
- PdfWriter.PageLayoutSinglePage – 同時只顯示一個頁面
- PdfWriter.PageLayoutOneColumn –單列顯示
- PdfWriter.PageLayoutTwoColumnLeft –雙列顯示,奇數(shù)頁在左
- PdfWriter.PageLayoutTwoColumnRight -雙列顯示,奇數(shù)頁在右
文件打開時,頁面模式用到下面其中之一:
- PdfWriter.PageModeUseNone
- 既不顯示大鋼也不顯示縮略圖
- PdfWriter.PageModeUseOutlines
- 顯示大綱
- PdfWriter.PageModeUseThumbs
- 顯示縮略圖
- PdfWriter.PageModeFullScreen
- 全屏模式,沒有菜單、windows控件或者其他任何windows可見控件
- PdfWriter.HideToolbar
- 當(dāng)文檔激活時,是否隱藏閱讀程序(如Adobe Reader)的工具條
- PdfWriter.HideMenubar
- 當(dāng)文檔激活時,是否隱藏閱讀程序的菜單.
- PdfWriter.HideWindowUI
- 當(dāng)文檔激活時,是否隱藏閱讀程序的界面元素,如滾動條、導(dǎo)航條等,而僅僅保留文檔顯示
- PdfWriter.FitWindow
- 是否調(diào)整文檔窗口尺寸以適合顯示***頁。
- PdfWriter.CenterWindow
- 是否將文檔窗口放到屏幕中央
在全屏模式下,指定如何顯示界面元素(選擇一個)
- PdfWriter.NonFullScreenPageModeUseNone -既不顯示大鋼也不顯示縮略圖
- PdfWriter.NonFullScreenPageModeUseOutlines – 顯示大鋼
- PdfWriter.NonFullScreenPageModeUseThumbs – 顯示縮略圖
- 說明:你只能在類PdfWriter中調(diào)用這些方法。
C#打開一個文件之加密
打開文檔之前還要做的一件事情就是加密(如果你希望該文檔加密),要達到這個目的,你可以使用下面的方法:
public void setEncryption(boolean strength, String userPassword, String ownerPassword, int permissions);
• strength 是下面兩個常量之一:
- PdfWriter.STRENGTH40BITS: 40 位
- PdfWriter.STRENGTH128BITS: 128位
- (Acrobat Reader 5.0及以上版本支持)
• UserPassword和ownerPassword 可以為空或零長度, 這種情況下, ownerPassword 將被隨機的字符串代替
• Permissions 為下列常量之一:
- PdfWriter.AllowPrinting
- PdfWriter.AllowModifyContents
- PdfWriter.AllowCopy
- PdfWriter.AllowModifyAnnotations
- PdfWriter.AllowFillIn
- PdfWriter.AllowScreenReaders
- PdfWriter.AllowAssembly
- PdfWriter.AllowDegradedPrinting
- writer.setEncryption(PdfWriter.STRENGTH40BITS, null, null, PdfWriter.AllowCopy);
- writer.setEncryption(PdfWriter.STRENGTH128BITS, "userpass",
- "ownerpass", PdfWriter.AllowCopy | PdfWriter.AllowPrinting);
C#打開一個文件的基本操作就向你介紹到這里,希望對你了解和學(xué)習(xí)C#打開一個文件有所幫助。
【編輯推薦】