さまざまな形式に対応するデータ出力コンポーネント
ComponentOne Studioには、次のデータ出力関連のコンポーネントが収録されています。Windows FormsのほかASP.NETにも対応しています。
PDF for .NET
PDF for .NETの特徴は、帳票定義を事前に作成しておいてPDFとして出力するのではなく、プログラムコードからの描画結果をPDFに出力するという点です。
帳票定義をグラフィカルに作成できないので、いわゆる帳票をPDFとして出力するという用途には不向きですが、文章をベタ打ちしたようなものをPDFとして出力したり、画像ファイルを指定して画像を埋め込んだPDFファイルを出力したりするような用途であれば、軽量で使いやすいコンポーネントです。
If _openDialog.ShowDialog() = DialogResult.OK Then Dim rect As RectangleF = C1PdfDocument1.PageRectangle rect.Inflate(-72, -72) C1PdfDocument1.DrawImage(Image.FromFile(_openDialog.FileName), _ rect, _ ContentAlignment.TopLeft, _ C1.C1Pdf.ImageSizeModeEnum.Clip) C1PdfDocument1.Save(System.IO.Path.Combine(My.Application.Info.DirectoryPath, _ "test.pdf")) End If
![図8 PDF for .NETで画像をPDF化](http://cz-cdn.shoeisha.jp/static/images/article/5141/08.gif)
XLS for .NET
Excelファイル形式で出力という業務要件は増えています。これは、単にエコというだけではなく、グラフ表示などによる見える化にExcelを活用するケースが年々強くなってきているからでしょう。
C1XLBook1.Sheets(0)(0, 0).Value = "Hello World!" C1XLBook1.Save(filename) System.Diagnostics.Process.Start(filename)
![図9 XLS for .NETでExcelファイルを出力](http://cz-cdn.shoeisha.jp/static/images/article/5141/09.gif)
ZIP for .NET
Visual J#があった頃は、java.util.zip.ZipFileクラスによりzipファイルが扱えましたが、Visual Studio 2008以降ではVisual J#が付属しなくなったので、zipファイルを気軽に扱えなくなりました。
しかし、ZIP for .NETを使えば、Visual J#のjava.utl.zip.ZipFileクラスよりも手軽にzip操作が可能です。そして、zipが気軽に扱えれば次のような応用も簡単にできます。
- パスワード付zipファイルとしてDataSetの内容をローカル保存することで、内容改変などを防止
- httpやftpを使ったファイル転送にzipファイルを使うことで、転送元と転送先でファイル日時が変わることを防止
Using _zip As New C1.C1Zip.C1ZipFile _zip.Open(System.IO.Path.Combine(My.Application.Info.Description, _ "test.zip")) _zip.Password = "password" Using _s As System.IO.Stream = _zip.Entries.OpenWriter("data.xml", True) ds.WriteXml(_s, XmlWriteMode.WriteSchema) End Using _zip.Close() End Using
なお、Silverlight用としては、同様の機能を持った「Zip for Silverlight」が収録されています。
まとめ
このように、ComponentOne Studioには、工数を削減したり、業務要件を満たすのに便利なコンポーネントが多数搭載されています。
次回以降で、引き続きASP.NET、Silverlight、WPF用の注目コンポーネントを紹介していきたいと思います。