最近遇到要在windows桌面程式中用程式去開啟加密過的PDF文件,並且要在程式中讓使用者輸入PDF開啟密碼後直接開啟檔案,即檔案開啟不再要求輸入密碼,由於Adobe好像無法以command的方式帶入密碼開啟檔案,也查無相關API,最後只好另外找了元件iTextSharp來代替。
在將iTextSharp加入專案後,可以用PdfReader讀入加密過的PDF檔案,並進行PDF文件的操作
PdfReader reader = new PdfReader(filename, password)
最近遇到要在windows桌面程式中用程式去開啟加密過的PDF文件,並且要在程式中讓使用者輸入PDF開啟密碼後直接開啟檔案,即檔案開啟不再要求輸入密碼,由於Adobe好像無法以command的方式帶入密碼開啟檔案,也查無相關API,最後只好另外找了元件iTextSharp來代替。
在將iTextSharp加入專案後,可以用PdfReader讀入加密過的PDF檔案,並進行PDF文件的操作
PdfReader reader = new PdfReader(filename, password)
所以應該要在GridView.RowCreated 事件中隱藏欄位,Create事件是在DataBound後發生的,所以此時資料已經繫結到GridView,就不會發生PostBack取不到值的狀況
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
最近遇到的問題:
System.Web.HttpException: URL 編碼型式資料無效。 ---> System.InvalidOperationException: 由於該物件目前的狀態,導致作業無效。
於 System.Web.HttpValueCollection.ThrowIfMaxHttpCollectionKeysExceeded()
於 System.Web.HttpValueCollection.FillFromEncodedBytes(Byte[] bytes, Encoding encoding)
匯出Excel網路上能查到很多種方式,像是NPOI、EPPlus、ClosedXML等
但偶爾會遇到不能使用這些套件的環境,所以這邊以 Interop.Excel 操作為例
將DataTable匯出為Excel,匯出格式為xlsx檔
原本使用Image.GetThumbnailImage來做縮圖,結果畫質相當差,模糊不清,所以改用Graphics重繪
Graphics物件重繪圖片的畫質會比Image.GetThumbnailImage來的好
以下為參考程式碼
在Winform程式中,經常會有需要改變畫面上各個控制項屬性的時候,
而應用程式經常會用到多執行緒的方式處理各種資料,這時很有可能會出現跨執行緒存取
控制項的情形,此時會出現錯誤訊息,如:存取控制項 'label1' 時所使用的執行緒與建立控制項的執行緒不同
WebControls中的Button控制項或ImageButton在Render成 Html 後 type屬性會變成 submit 例:<input type="submit" value="submit">
這時在後端Page_Load中無法用Request.Form["__EVENTTARGET"]取得控制項ID,因為他們並不會觸發__doPostBack的機制
以下為替代方法

今天遇到要寫入大量資料的情形,一開始沒想到資料量相當龐大(一開始我也不曉得到底有多少資料)
就自然的跑迴圈一筆一筆Insert,結果程式一跑下去還以為當機,整個停擺不動,嚇我一跳,
這時才想到應該是資料量太大,Insert時間太長了,就查了下資料來源...
Response.Redirect(String url)會呼叫Response.Redirect(String url, bool endResponse)
當endResponse為true(預設)時,就會呼叫 Response.End() 並拋出 ThreadAbortException
如果系統有記錄Log就會擷取到錯誤訊息,若要避免這時產生錯誤的話,endResponse傳入false就行了