/*
//http://sourceforge.net/projects/itextsharp/
* http://stackoverflow.com/questions/8713963/itextsharp-pdf-resize-document-to-accomodate-a-large-image
* http://www.inliteresearch.com/barcode-recognition/
* http://footheory.com/blogs/donnfelker/archive/2008/05/11/using-itextsharp-to-watermark-write-text-to-existing-pdf-s.aspx
* http://redaction.codeplex.com/
* http://www.koders.com/csharp/fidB1D68577734B615DBC366542FF8BA8A977F7F54D.aspx?s=button
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
//using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.xml;
using iTextSharp.text.exceptions;
using System.Drawing.Imaging;
using iTextSharp;
using DataMatrix.net;
namespace WindowsWordDemo
{
public partial class FormPdf : Form
{
private static string path = Directory.GetCurrentDirectory();
string imagePath=path+"\\geovindu.png";
string strFileName = path + "\\geovindu.pdf";
Document doc = new Document(PageSize.A4.Rotate());//LETTER.Rotate()
// ---------------------------------------------------------------
// Date 180310
// Purpose Text to DataMatrix image.
// Entry sFileName - Name of the barcode file (PNG, + path).
// sValue - The string to save as barcode.
// iBitSize - The size of one data bit (pixels).
// iBorSize - The size of the quiet zone (pixels).
// Return The bitmap, null if not successful.
// Comments Supports .bmp, .gif, .ico, .jpg, .png, .wdp, .tiff.
// See source, project DataMatrixTest, Program.cs.
//http://wrb.home.xs4all.nl/Articles_2010/Article_WPFDataMatrix_P2_01.htm
// ---------------------------------------------------------------
private System.Drawing.Bitmap EncodeText(string sFileName, string sValue,
int iBitSize, int iBorSize)
{
DmtxImageEncoder encoder = new DmtxImageEncoder();
DmtxImageEncoderOptions options = new DmtxImageEncoderOptions();
options.ModuleSize = iBitSize;
options.MarginSize = iBorSize;
options.BackColor = System.Drawing.Color.White;
options.ForeColor = System.Drawing.Color.Black;
// With options (GDI+).
System.Drawing.Bitmap oB = encoder.EncodeImage(sValue, options);
// Without options.
// System.Drawing.Bitmap encodedBitmap = encoder.EncodeImage(sValue);
try
{
oB.Save(sFileName, System.Drawing.Imaging.ImageFormat.Png);
}
catch
{
oB = null;
}
return oB;
}
/// <summary>
///
/// </summary>
public FormPdf()
{
InitializeComponent();
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void FormPdf_Load(object sender, EventArgs e)
{
//var doc1 = new Document(PageSize.A4, 50, 50, 80, 50);
//MemoryStream Memory = new MemoryStream();
//PdfWriter pdfWrite = PdfWriter.GetInstance(doc1, Memory);
//20120603 Geovin Du
//塗聚文
try
{
//條形碼碼圖片
EncodeText(imagePath, "36242520120603", 100, 100);
PdfWriter.GetInstance(doc, new FileStream(strFileName, FileMode.Create));
doc.Open();
doc.Add(new Paragraph());
iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(imagePath);
if (img.Height > img.Width)
{
//Maximum height is 800 pixels.
float percentage = 0.0f;
percentage = 700 / img.Height;
img.ScalePercent(percentage * 100);
}
else
{
//Maximum width is 600 pixels.
float percentage = 0.0f;
percentage = 540 / img.Width;
img.ScalePercent(percentage * 100);
}
img.SetAbsolutePosition(10, 10);
img.Border = iTextSharp.text.Rectangle.BOX;
img.BorderColor = iTextSharp.text.Color.BLACK;
img.BorderWidth = 3f;
doc.Add(img);
doc.NewPage();
BaseFont btfChinese=BaseFont.CreateFont(@"D:\WINDOWS\Fonts\繁篆书.ttf", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
Font ChFont=new Font(btfChinese,12);
Font ChFont_blue = new Font(btfChinese, 40, 3, iTextSharp.text.Color.BLUE);
Font ChFont_message = new Font(btfChinese, 60, 5, iTextSharp.text.Color.RED);
doc.Add(new Paragraph("First Pdf File made by Salman using iText,涂斯博", ChFont_blue));
doc.NewPage();
Chunk c = new Chunk("£捡垃圾,就是我的一生渴求. £并且喜欢这句『书中自有黄金屋,书中自有颜如玉,书中自有千钟黍,书中车马多簇簇』的感慨.『读书长见识,行路广阅历』,是一个「悟」字. $自然是我最想追求的「偶像」. ¥读者是,读之者,者之读.一沙一世界! ¥to be is to do举世皆清我独浊,众人皆醒我独醉website:http://www.dusystem.com , www.geovi.com,www.dupcit.com ",ChFont);
Phrase p1 = new Phrase(c);
doc.Add(p1);
Chunk c1 = new Chunk("近期心愿 有饭吃,有觉睡", ChFont);
Chunk c2 = new Chunk("哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构(分析)整合学习, 情商(EQ)运筹(学)成功,信息流,物流,人力资源流,资本流的系统解决方案的开发与设计.", ChFont_blue);
Chunk c3 = new Chunk("why we only heard about haves and have-nots,why we didn't heard about doers and doer-nots.人生是一种心境,生活是一种艺术,成功是一种心态,幸福是一种感觉,竞争是一种建构,情感是一种整合.学习是一种成长.逻辑和美都关注封闭的事实,我们的生活则是发现的经验中度过的.....$经一番挫折,长一番识见.容一番横逆,增一番器度.省一番经营,多一分道义.学一分退让,讨一分便宜.去一分奢侈,少一分罪过.加一分体贴,知一分物情.", ChFont);
Phrase p2 = new Phrase();
p2.Add(c1);
p2.Add(c2);
p2.Add(c3);
Paragraph pg = new Paragraph(p2);
pg.SetAlignment("Justify");
pg.FirstLineIndent = 20f;
pg.SetLeading(0.0f, 2.0f);
doc.Add(pg);
doc.Close();
}
catch
{
// add some code here incase you have an exception
}
finally
{
//Free the instance of the created doc as well
doc.Close();
}
}
}
}
//A4紙:页面宽度 827* 1169 (英寸),210*297(毫米)
//自定義紙張大小 PaperSize pkCustomSize = new PaperSize( "custom size",(int)(82.55*100/25.4+1),(int)(184.0*100/25.4+1)); //毫米轉英寸