顯示具有 其它 標籤的文章。 顯示所有文章
顯示具有 其它 標籤的文章。 顯示所有文章

2011年9月7日 星期三

限制主動式內容處理方法

曾經有個朋友撰寫html文件並將它放置本機電腦桌面以檔案方式執行,
但遇到一些security的問題,底下為當初提供給他的解決方法

步驟一
 在本機建立一個分享資料夾,將檔案移入
步驟二
   在[開始]執行 \\hostname\sharefoldername    *hostname指的是本機電腦名稱,sharefoldername為分享名稱
步驟三
   在步驟二執行後彈跳出來的視窗找尋要執行的html檔,將滑鼠移至檔案按右鍵選擇傳送到桌面當捷徑
   這個步驟的目的在建立一個link為\\hostname\foldername\filename.htm
步驟四
   建立信任網站格式




2011年3月20日 星期日

table-layout

在網頁中我們常用table來呈現資料,但有時儲存格的內容有較長的單字或數字超過欄位寬度的設定,這時就會發生原先版面的設計跑掉,那我們應如何解決這個問題呢?答案就是利用table-layout:fixed; word-break:break-all,下面我們將以圖例說明

table總寬度為200px,有二個欄位各100px


網頁呈現畫面,雖然欄位設定為各100px,但由於數字的長度已大於欄位的寛度,所以版面跑掉。


修改原始碼,在table的style增加table-layout:fixed


網頁呈現畫面,這裡注意雖然版面正常了,但數字部份被截掉一些


再次修改原始碼,增加word-break:break-all


網頁呈現畫面


在上方的圖例是以IE 6做為測試用的瀏覽器,如果有興趣的人也可以測試其他瀏覽器,另外word-break:break-all的語法是以每個字完做結尾,如果網頁內容主要是以英文為主並且是給西方人觀看,這時候單字因為會被強迫折行,造成語意不清,所以使用上要注意。

2011年3月18日 星期五

將USB隨身碟由FAT32格式轉成NTFS

會寫這篇的原因是經常有朋友問我,為什麼他們的檔案從PC Copy到隨身碟會發生錯誤,我第一個直覺通常會問"你的檔案有沒有超過4G",在我們日常生活中使用的隨身碟通常格式都為FAT32,而FAT32有個限制就是單一檔案無法超過4G,那有沒有辦法突破這個限制,答案是有的,以下提供二種方法

方法1:轉換FAT32=>NTFS
以XP系統為例,在[開始]=>[執行]輸入cmd,此時會出現命令提示字元視窗,再輸入
convert 隨身碟磁碟機代號: /fs:ntfs

方法2:格式化
以XP系統為例,在系統預設的情況下是無法格式化隨身碟為NTFS,必須要經由一些設定,設定如下

1.插入隨身碟

2.在[我的電腦]按右鍵點選[電腦管理]再點[選裝置管理員],選擇[磁碟機]中的隨身碟裝置

3.按右鍵選擇[內容],切換至[原則]頁籤設定[效能最佳化]

4.在格式化隨身碟時[檔案系統]選擇NTFS

那方法1與方法2有什麼差異呢?差異在方法2無法保存隨身碟的資料,如果隨身碟有資料時可選擇方法1

三門問題

有許久沒有寫blog了,會寫這篇是因為上課時聽到老師精闢的解說,所以借花獻佛分享給大家,以下是三門問題的解說

為遊戲節目,三個門中其中一個門後方有車子,其餘二個門為山羊,參賽者先選擇一個門後,主持人會開啟另一個門會出現山羊(主持人一定會開門且出現的一定是山羊),當主持人問參賽者時,參賽者是否要換

門後的東西:羊1、羊2、車

可獲得機率為66%
if 參賽者原選羊1 then 車 (主持人開羊2)
if 參賽者原選羊2 then 車 (主持人開羊1)
if 參賽者原選車 then 羊 (主持人開羊)

不換可獲得機率為33%
if 參賽者原選羊1 then 羊1 (主持人開羊2)
if 參賽者原選羊2 then 羊2 (主持人開羊1)
if 參賽者原選車 then 車 (主持人開羊)

原本三個門選一個得到車子的機率為1/3,但在主持人會開另一個門且一定為羊,並給予參賽者更換門的機會,參賽者如果選擇換,得到車子的機率會從33%->66%,雖然網路上有其他人的論點為50%,但我認為是66%,有興趣的看倌不訪上網查詢三門問題。

2010年12月3日 星期五

.Net Reflector (二)

上篇.Net Reflector介紹,這次再說明.Net Reflector的Export功能,至於為什麼要說明是源自於辦公室同事專案裡引用的DLL檔Source Code沒有了,所以想藉由.Net Reflector產出Source Code,因為操作簡單我不做過多解釋會直接以圖例說明

1.開啟 .Net Reflector(例子的.Net Reflector版本為6.5)


2.選取欲Export的DLL檔


3.點選組件SSOUtil後再按滑鼠右鍵Export


4.點選Start按鈕


5.點選Close按鈕


6.產出路徑(XP 環境)

2010年7月19日 星期一

NPOI使用

會使用這個元件的主要原因是因為要在一個Excel檔裡建立多個sheet的資料,底下是整理出的範例



using System;
using System.Web;
using System.IO;
using NPOI;
using NPOI.HSSF;
using NPOI.HSSF.Util;
using NPOI.HSSF.Model;
using NPOI.HSSF.UserModel;

public class filedownload : IHttpHandler
{
public void ProcessRequest (HttpContext context)
{
MemoryStream ms = new MemoryStream();
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.CreateSheet("sample");
HSSFCell cell = null;
HSSFCellStyle borderStyle = null;
HSSFCellStyle colorStyle = null;
HSSFCellStyle fontStyle = null;
HSSFCellStyle heightStyle = null;
HSSFCellStyle spanStyle = null;
HSSFCellStyle wrapStyle = null;
HSSFFont font = null;

borderStyle = workbook.CreateCellStyle();
colorStyle = workbook.CreateCellStyle();
fontStyle = workbook.CreateCellStyle();
heightStyle = workbook.CreateCellStyle();
spanStyle = workbook.CreateCellStyle();
wrapStyle = workbook.CreateCellStyle();

//Style設定
borderStyle.BorderTop = HSSFCellStyle.BORDER_THIN;
borderStyle.BorderLeft = HSSFCellStyle.BORDER_THIN;
borderStyle.BorderBottom = HSSFCellStyle.BORDER_THIN;
borderStyle.BorderRight = HSSFCellStyle.BORDER_THIN;
colorStyle.FillForegroundColor = HSSFColor.LIGHT_CORNFLOWER_BLUE.index;
colorStyle.FillPattern = HSSFCellStyle.SOLID_FOREGROUND;
fontStyle.Alignment = HSSFCellStyle.ALIGN_CENTER;
fontStyle.VerticalAlignment = HSSFCellStyle.VERTICAL_CENTER;
heightStyle.Alignment = HSSFCellStyle.ALIGN_CENTER;
heightStyle.VerticalAlignment = HSSFCellStyle.VERTICAL_CENTER;
spanStyle.Alignment = HSSFCellStyle.ALIGN_CENTER;
spanStyle.VerticalAlignment = HSSFCellStyle.VERTICAL_CENTER;
wrapStyle.WrapText = true;

//指定紙張大小 A3=8, A4=9, Letter=1
sheet.PrintSetup.PaperSize = 9;

//指定直式或橫式 true=橫式 false=直式
sheet.PrintSetup.Landscape = true;

//藏隱格線
sheet.DisplayGridlines = false;

//設定欄寬
sheet.SetColumnWidth(0, 24 * 256);
sheet.SetColumnWidth(1, 24 * 256);

//指定列高
cell = sheet.CreateRow(0).CreateCell(0);
cell.SetCellValue("指定列高");
cell.CellStyle = heightStyle;
sheet.GetRow(0).HeightInPoints = 50;

//字型大小
font = workbook.CreateFont();
font.FontHeightInPoints = 14;
font.Boldweight = HSSFFont.BOLDWEIGHT_BOLD;
fontStyle.SetFont(font);
cell = sheet.CreateRow(1).CreateCell(0);
cell.CellStyle = fontStyle;
cell.SetCellValue("字型大小14粗體");

//合併儲存格
cell = sheet.CreateRow(2).CreateCell(0);
cell.SetCellValue("合併儲存格");
cell.CellStyle = spanStyle;
sheet.AddMergedRegion(new Region(2, 0, 3, 1));

//Wrap
cell = sheet.CreateRow(4).CreateCell(0);
cell.SetCellValue(string.Format("換行{0}測試", System.Environment.NewLine));
cell.CellStyle = wrapStyle;

//增加邊框
cell = sheet.CreateRow(5).CreateCell(1);
cell.SetCellValue("邊框 ");
cell.CellStyle = borderStyle;

//背景
cell = sheet.CreateRow(6).CreateCell(0);
cell.SetCellValue("背景");
cell.CellStyle = colorStyle;

//插入分頁
sheet.SetRowBreak(cell.RowIndex);

//下一頁資料
cell = sheet.CreateRow(7).CreateCell(0);
cell.SetCellValue("下一頁資料");

workbook.Write(ms);

context.Response.ContentType = "application/vnd.ms-excel";
context.Response.AddHeader("Content-Disposition", "attachment; filename=myExcel.xls");
context.Response.BinaryWrite(ms.ToArray());
}

public bool IsReusable
{
get
{
return false;
}
}
}

使用NPOI要注意的地方是如果你要設定每個儲存格不同的儲格格式,需要建立多個HSSFCellStyle並且將它指派給儲存格


*相關參考


NPOI ( Web C+ + + + - IT技術文章 )


NPOI 1.2教程(目录) - tonyqus.cn - 博客园


NPOI - Discussions - New line in cell


[C#]NPOI匯出Excel遇到資料換行的問題 - gipi的學習筆記-我的職場觀念、IT部落格- 點部落

2009年6月22日 星期一

the pdf toolkit(pdftk)

今天向大家介紹一套免費的PDF工具 pdftk,為什麼會介紹這個軟體,因為它可以做command-line,所以我們可以將它整合在系統的Job或當做外部指令應用,底下是它所提供的功能
  • Merge PDF Documents
  • Split PDF Pages into a New Document
  • Rotate PDF Pages or Documents
  • Decrypt Input as Necessary (Password Required)
  • Encrypt Output as Desired
  • Fill PDF Forms with FDF Data or XFDF Data and/or Flatten Forms
  • Apply a Background Watermark or a Foreground Stamp
  • Report on PDF Metrics such as Metadata, Bookmarks, and Page Labels
  • Update PDF Metadata
  • Attach Files to PDF Pages or the PDF Document
  • Unpack PDF Attachments
  • Burst a PDF Document into Single Pages
  • Uncompress and Re-Compress Page Streams
  • Repair Corrupted PDF (Where Possible)
接下來我僅針對浮水印部份來做Demo說明
參與演出角色
  • pdftk.exe
  • 原稿PDF(取名為 in.pdf)
  • 浮水印PDF(取名為 back.pdf)
  • 產出後PDF(取名為 out.pdf)
首先我們來看原稿內容


浮水印內容


步驟1、我們將 pdftk.exe、in.pdf、back.pdf一併放置在C:\ 底下
步驟2、利用開始-執行鍵入cmd,進入命令提示字元
步驟3、在c:\ 下輸入 pdftk in.pdf background back.pdf output out.pdf


在這裡有關浮水印的參數有background及stamp,二者的差別在background會將浮水印放在合併後文件的下面,而stamp則會像郵票一樣貼在合併後文件的上面,更詳細的內容請點選這裡

2009年6月1日 星期一

.Net Reflector

有時候我們承接別人遺留下來的專案,看到密密麻麻的程式,心裡難免會罵一聲暗,如果程式只是一個執行檔(exe)又沒有source code,那絕對會想殺人,這裡介紹一個工具Red Gate's .NET Reflector,這個工具可以檢視.Net所撰寫的組件(dll)或執行檔(exe)的內容,首先底下是source code
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1 {
 class Program {
  static void Main(string[] args) {
   Console.Write("Hello World!");
  }
 }
}
這是一個簡易的主控台應用程式專案,專案輸出類型為類別庫(dll),接下來我們會利用Red Gate's .NET Reflector工具檢梘dll檔案的內容





希望對大家有些幫助