LoginSignup
6

More than 3 years have passed since last update.

PDFsharp

Last updated at Posted at 2019-05-22

この記事はVisualStudio2013の時の記事。
VisualStudio2015の記事はこちら。

PDFsharpという、PDF編集ライブラリがある。
.NETからPDFを作成する事が出来る。命令で、文字も書けるし、線も引ける。
MITライセンスとの事で、同ライセンスは、Wikiによると、
“このソフトウェアを誰でも無償で無制限に扱って良い。ただし、著作権表示および本許諾表示をソフトウェアのすべての複製または重要な部分に記載しなければならない。”
“作者または著作権者は、ソフトウェアに関してなんら責任を負わない。”
との事なので、コピーライトを書けば、商用利用も可能なんじゃないかな。
多分。

ASP.NETからでも、参照設定にPdfSharp.dllを追加すれば使えたよ。
游明朝か游ゴシックにフォントを限れば、日本語の利用も可能。
以下、ASP.NET(C#)での、簡単な例。

c#
using PdfSharp;
using PdfSharp.Drawing;
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;

// 中略...

protected void Button1_Click( object sender, EventArgs e)
{
  PdfDocument document = new PdfDocument();
  PdfPage page = document.AddPage();
  page.Size = PageSize .A4; //用紙の大きさ
  page.Orientation = PageOrientation .Landscape; //用紙の向き

  XGraphics graphics = XGraphics .FromPdfPage(page);

  var pdf_ja_font_options = new XPdfFontOptions (PdfFontEncoding .Unicode, PdfFontEmbedding.Always);
  var pdf_ja_font = new XFont( "游明朝" , 12, XFontStyle.Regular, pdf_ja_font_options);

  graphics.DrawString( "こんにちわ世界" , pdf_ja_font, XBrushes.Black,
new XRect (0, 0, page.Width, page.Height), XStringFormats.Center);

  XPen pen = new XPen( XColors .Red, 4); //線を引く
  pen.DashStyle = XDashStyle .Dash;
  graphics.DrawLine(pen, 10, 20, page.Width - 10, 20);
  graphics.DrawLine(pen, 10, page.Height - 20, page.Width - 10, page.Height - 20);

  document.PageLayout = PdfPageLayout.OneColumn; //幅一杯に表示

  string filepath = @"C:\Users\..(中略)..\asp_pdf\asp_pdf\pdf" ;
  string filename = filepath + @"\HelloWorld.pdf" ;
  document.Save(filename);

  string openfilename = "./pdf/HelloWorld.pdf" ;
  Response.Redirect(openfilename); //PDFに遷移
}

Creator of PDFsharp is empira Software GmbH
Kirchstrase 19 53840 Troisdorf Germany
www.empira.de
PDFsharp (R) is a registered trademark of empira Software GmbH


昔別のブログに書いた記事なのだけど、珍しくアクセス数が多かったのでこちらにお引越し。
初出 2016-04-24

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6