Microsoft Officeドキュメント形式は、Document Imagingファミリー以上のエディションでサポートしています。(Imaging Proファミリーではサポートしておりませんので直接変換することはできません。)
JPEGやPNGファイル形式を読み込むのと同様に、Word(DOC/DOCX)、Excel(XLS/XLSX)、PowerPoint(PPT/PPTX)形式のページをラスタ画像として読み込むことが可能です。
SVG形式として読み込む場合には、19.0Jで新しく追加されたドキュメントビューワ(Leadtools.Documents.UI.DocumentViewer)をご利用ください。
[RasterImageViewer]
実際の動作は.NETコントロール チュートリアルの「LoadMsOfficeFormat」をご覧ください。
[DocumentViewer]
上記の.NETコントロール チュートリアルの「DocumentViewer」で画像のロード方法をご参考ください。Microsoft Officeドキュメント形式の読み込みに必要な以下のアセンブリファイルをプロジェクトの参照に追加することで読み込みできます。
Leadtools.Codecs.Xls
Leadtools.Codecs.Xlx
Leadtools.Codecs.Doc
Leadtools.Codecs.Dox
Leadtools.Codecs.Ppt
Leadtools.Codecs.Ppx
◆ご注意
上記LEADTOOLSの機能では、一部の図形などが表示されないといった問題があります。
[Document Imagingファミリー] Officeファイルを読み込んだ際に文字や図、オートシェイプなどが表示されない
そのため、他の方法としてLEADTOOLSの機能のみではなく、Microsoft Officeのプライマリ相互運用機能アセンブリ(※)で提供している機能を使用してPDFもしくはXPSファイルに変換し、変換したファイル(PDFもしくはXPS)をLEADTOOLSで読み込んで任意のファイル形式に変換する方法が考えられます。
※使用するプライマリ相互運用機能アセンブリ
- Microsoft.Office.Interop.Excel
- Microsoft.Office.Interop.Word
- Microsoft.Office.Interop.PowerPoint
以下の情報もご参照ください。
Office プライマリ相互運用機能アセンブリ
以下は、ExcelファイルをTIFFファイルに変換するサンプルです。こちらをご参考ください。
サンプルコード(VB.NET)
Imports Microsoft.Office.Interop.Excel
Imports Leadtools
Imports Leadtools.Codecs
Public Class Form1
Dim excelApplication As New Microsoft.Office.Interop.Excel.Application()
Dim excelWorkbook As Workbook = Nothing
Dim paramSourceBookPath As String = "C:\Temp\Test.xlsx"
Dim paramExportFilePath As String = "C:\Temp\Test.pdf"
Dim paramExportFormat As XlFixedFormatType = XlFixedFormatType.xlTypePDF
Dim paramExportQuality As XlFixedFormatQuality = XlFixedFormatQuality.xlQualityStandard
Dim paramOpenAfterPublish As Boolean = False
Dim paramIncludeDocProps As Boolean = True
Dim paramIgnorePrintAreas As Boolean = True
Dim paramFromPage As Object = Type.Missing
Dim paramToPage As Object = Type.Missing
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
' Excelワークブックを開きます。
excelWorkbook = excelApplication.Workbooks.Open(paramSourceBookPath)
' PDFファイルとして保存します。
If Not excelWorkbook Is Nothing Then
excelWorkbook.ExportAsFixedFormat(paramExportFormat, _
paramExportFilePath, paramExportQuality, _
paramIncludeDocProps, paramIgnorePrintAreas, _
paramFromPage, paramToPage, paramOpenAfterPublish)
End If
Catch ex As Exception
' エラーを返します。
Finally
' Excleワークブックを閉じます。
If Not excelWorkbook Is Nothing Then
excelWorkbook.Close(False)
excelWorkbook = Nothing
End If
' Excelを終了し、Applicationオブジェクトを解放します。
If Not excelApplication Is Nothing Then
excelApplication.Quit()
excelApplication = Nothing
End If
GC.Collect()
GC.WaitForPendingFinalizers()
GC.Collect()
GC.WaitForPendingFinalizers()
End Try
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim codecs As New RasterCodecs
Dim tempimage As RasterImage
codecs.Options.Pdf.Load.GraphicsAlpha = 4
codecs.Options.Pdf.Load.TextAlpha = 4
codecs.Options.Pdf.Load.DisplayDepth = 24
' 水平および垂直方向の表示解像度(DPI)を設定します。
codecs.Options.RasterizeDocument.Load.XResolution = 150
codecs.Options.RasterizeDocument.Load.YResolution = 150
' PDFファイルを読み込みます。
tempimage = codecs.Load(paramExportFilePath, 24, CodecsLoadByteOrder.Bgr, 1, 1)
' TIFF形式で保存します。
codecs.Save(tempimage, "C:\Temp\Test.tif", RasterImageFormat.Tif, 0)
End Sub
End Class
サンプルコード(C#)
using Microsoft.Office.Interop.Excel;
using Leadtools;
using Leadtools.Codecs;
public class Form1
{
Microsoft.Office.Interop.Excel.Application excelApplication = new Microsoft.Office.Interop.Excel.Application();
Workbook excelWorkbook = null;
string paramSourceBookPath = @"C:\Temp\Test.xlsx";
string paramExportFilePath = @"C:\Temp\Test.pdf";
XlFixedFormatType paramExportFormat = XlFixedFormatType.xlTypePDF;
XlFixedFormatQuality paramExportQuality = XlFixedFormatQuality.xlQualityStandard;
bool paramOpenAfterPublish = false;
bool paramIncludeDocProps = true;
bool paramIgnorePrintAreas = true;
object paramFromPage = Type.Missing;
object paramToPage = Type.Missing;
private void Button1_Click(object sender, System.EventArgs e)
{
try
{
// Excelワークブックを開きます。
excelWorkbook = excelApplication.Workbooks.Open(paramSourceBookPath,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing);
// PDFファイルとして保存します。
if ((excelWorkbook != null))
{
excelWorkbook.ExportAsFixedFormat(paramExportFormat, paramExportFilePath,
paramExportQuality, paramIncludeDocProps, paramIgnorePrintAreas,
paramFromPage, paramToPage, paramOpenAfterPublish,Type.Missing);
}
}
catch (Exception ex)
{
// エラーを返します。
}
finally
{
// Excleワークブックを閉じます。
if ((excelWorkbook != null))
{
excelWorkbook.Close(false,Type.Missing,Type.Missing);
excelWorkbook = null;
}
// Excelを終了し、ApplicationClassオブジェクトを解放します。
if ((excelApplication != null))
{
excelApplication.Quit();
excelApplication = null;
}
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
GC.WaitForPendingFinalizers();
}
}
private void Button2_Click(object sender, System.EventArgs e)
{
RasterCodecs codecs = new RasterCodecs();
RasterImage tempimage;
codecs.Options.Pdf.Load.GraphicsAlpha = 4;
codecs.Options.Pdf.Load.TextAlpha = 4;
codecs.Options.Pdf.Load.DisplayDepth = 24;
// 水平および垂直方向の表示解像度(DPI)を設定します。
codecs.Options.RasterizeDocument.Load.XResolution = 150;
codecs.Options.RasterizeDocument.Load.YResolution = 150;
// PDFファイルを読み込みます。
tempimage = codecs.Load(paramExportFilePath, 24, CodecsLoadByteOrder.Bgr, 1, 1);
// TIFF形式で保存します。
codecs.Save(tempimage, @"C:\Temp\Test.tif", RasterImageFormat.Tif, 0);
}
}
0 コメント