チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション
Word ドキュメントから内容を抽出して、別の用途に使用したい場合があります。例えば、Word ドキュメントからテキストや画像を抽出し、それらを再配列して新しいドキュメントを作成することができます。これは、Spire.Doc for .NET を使用することによって簡単に達成することができます。このツールは、Word ドキュメント内のあらゆる種類の要素を取得し、それらをエクスポート、再配列、または変更することを可能にします。この記事では、Spire.Doc for .NET を使用して Word 文書からテキストと画像を抽出する方法について説明します。
まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.Doc
テキストを抽出するには、Paragraph.Text プロパティを使って段落内のすべてのテキストを取得し、StringBuilder.AppendLine() メソッドを使って StringBuilder クラスのインスタンスにそれを入れます。最後に、テキストを TXT ファイルに書き出すことができます。
詳しい手順は以下の通りです。
using Spire.Doc;
using Spire.Doc.Documents;
using System.Text;
using System.IO;
namespace ExtractTextfromWord
{
class ExtractText
{
static void Main(string[] args)
{
//Documentクラスのインスタンスを作成する
Document document = new Document();
//Word文書の読み込み
document.LoadFromFile("C:/洞窟の芸術.docx");
//StringBuilderクラスのインスタンスを作成する
StringBuilder sb = new StringBuilder();
//Word文書からテキストを抽出し、StringBuilderクラスのインスタンスに保存する
foreach (Section section in document.Sections)
{
foreach (Paragraph paragraph in section.Paragraphs)
{
sb.AppendLine(paragraph.Text);
}
}
//新たにtxtファイルを作成し、抽出したテキストを保存する
File.WriteAllText("テキストの抽出.txt", sb.ToString());
}
}
}
Imports Spire.Doc
Imports Spire.Doc.Documents
Imports System.Text
Imports System.IO
Namespace ExtractTextfromWord
Class ExtractText
Shared Sub Main(ByVal args() As String)
'Documentクラスのインスタンスを作成する
Dim document As Document = New Document()
'Word文書の読み込み
document.LoadFromFile("C:/洞窟の芸術.docx")
'StringBuilderクラスのインスタンスを作成する
Dim sb As StringBuilder = New StringBuilder()
'Word文書からテキストを抽出し、StringBuilderクラスのインスタンスに保存する
Dim section As Section
For Each section In document.Sections
Dim paragraph As Paragraph
For Each paragraph In section.Paragraphs
sb.AppendLine(paragraph.Text)
Next
Next
'新たにtxtファイルを作成し、抽出したテキストを保存する
File.WriteAllText("テキストの抽出.txt", sb.ToString())
End Sub
End Class
End Namespace
Word ドキュメントから画像を抽出するには、各段落にあるオブジェクトを取得し、それが画像であるかどうかを検出します。そして、それらの画像オブジェクトを PNG ファイルとして保存します。
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
namespace ExtractImage
{
class Program
{
static void Main(string[] args)
{
//Documentクラスのオブジェクトを作成する
Document document = new Document();
//Word文書の読み込み
document.LoadFromFile("C:/洞窟の芸術.docx");
int index = 0;
//文書の各セクションを取得する
foreach (Section section in document.Sections)
{
//セクションの各段落を取得する
foreach (Paragraph paragraph in section.Paragraphs)
{
//指定された段落の各文書オブジェクトを取得する
foreach (DocumentObject docObject in paragraph.ChildObjects)
{
//DocumentObjectTypeが画像であれば、ファイルに保存する
if (docObject.DocumentObjectType == DocumentObjectType.Picture)
{
DocPicture picture = docObject as DocPicture;
picture.Image.Save(string.Format("画像/画像{0}.png", index), System.Drawing.Imaging.ImageFormat.Png);
index++;
}
}
}
}
}
}
}
Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields
Namespace ExtractImage
Class Program
Shared Sub Main(ByVal args() As String)
'Documentクラスのオブジェクトを作成する
Dim document As Document = New Document()
'Word文書の読み込み
document.LoadFromFile("C:/洞窟の芸術.docx")
Dim index As Integer = 0
'文書の各セクションを取得する
Dim section As Section
For Each section In document.Sections
'セクションの各段落を取得する
Dim paragraph As Paragraph
For Each paragraph In section.Paragraphs
'指定された段落の各文書オブジェクトを取得する
Dim docObject As DocumentObject
For Each docObject In paragraph.ChildObjects
'DocumentObjectTypeが画像であれば、ファイルに保存する
If docObject.DocumentObjectType = DocumentObjectType.Picture Then
Dim picture As DocPicture = docObject
picture.Image.Save(String.Format("画像/画像{0}.png", index), System.Drawing.Imaging.ImageFormat.Png)
index = index + 1
End If
Next
Next
Next
End Sub
End Class
End Namespace
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
MS Word では、表によってデータを行と列に整理して表示することができるので、情報を理解しやすく、分析しやすくすることができます。この記事では、Spire.Doc for .NET を使って、Word ドキュメント内のデータで表を作成する方法を説明します。
まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.Doc
以下は、Word ドキュメントで表を作成し、書式設定するために Spire.Doc for .NET が提供する主要なクラスとメソッドの一部です。
名前 | 説明 |
Table クラス | Word ドキュメント内の表を表します。 |
TableRow クラス | 表中の行を表します。 |
TableCell クラス | 表中の特定のセルを表します。 |
Section.AddTbale() メソッド | 指定されたセクションに新しい表を追加するために使用します。 |
Table.ResetCells() メソッド | 行番号、列番号のリセットに使用します。 |
Table.Rows プロパティ | 表の行を取得するために使用します。 |
TableRow.Height プロパティ | 指定された行の高さを設定するために使用します。 |
TableRow.Cells プロパティ | セル集を返します。 |
TableRow.RowFormat プロパティ | 指定された行の書式を取得するために使用します。 |
詳細な手順は以下の通りです。
using System;
using System.Drawing;
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
namespace WordTable
{
class Program
{
static void Main(string[] args)
{
//Documentクラスのオブジェクトを作成する
Document doc = new Document();
//セクションを追加する
Section s = doc.AddSection();
//表のデータを定義する
String[] Header = { "日付", "商品名", "販売地域", "在庫量", "注文量" };
String[][] data = {
new String[]{ "08/07/2021", "カヤック", "米国", "24","16"},
new String[]{ "08/07/2021", "潜水機", "米国", "5","3"},
new String[]{ "08/07/2021", "制御システム", "チェコ共和国", "165","216"},
new String[]{ "08/08/2021", "二段レギュレータ", "米国", "98","88"},
new String[]{ "08/08/2021", "個人用潜水ソナー", "米国", "46","45"},
new String[]{ "08/09/2021", "コンパスコンソール", "米国", "211","300"},
new String[]{ "08/09/2021", "制御システム", "イギリス", "166","100"},
new String[]{ "08/10/2021", "予備のエアダンサ", "イギリス", "47","43"},
};
//表を追加する
Table table = s.AddTable(true);
table.ResetCells(data.Length + 1, Header.Length);
//最初の行を表のヘッダーとして設定する
TableRow FRow = table.Rows[0];
FRow.IsHeader = true;
//1列目の高さと色を設定する
FRow.Height = 23;
FRow.RowFormat.BackColor = Color.LightSeaGreen;
for (int i = 0; i < Header.Length; i++)
{
//セルの配置を設定する
Paragraph p = FRow.Cells[i].AddParagraph();
FRow.Cells[i].CellFormat.VerticalAlignment = VerticalAlignment.Middle;
p.Format.HorizontalAlignment = HorizontalAlignment.Center;
//データのフォーマットを設定する
TextRange TR = p.AppendText(Header[i]);
TR.CharacterFormat.FontName = "Calibri";
TR.CharacterFormat.FontSize = 12;
TR.CharacterFormat.Bold = true;
}
//他の行にデータを追加し、セルの書式を設定する
for (int r = 0; r < data.Length; r++)
{
TableRow DataRow = table.Rows[r + 1];
DataRow.Height = 20;
for (int c = 0; c < data[r].Length; c++)
{
DataRow.Cells[c].CellFormat.VerticalAlignment = VerticalAlignment.Middle;
Paragraph p2 = DataRow.Cells[c].AddParagraph();
TextRange TR2 = p2.AppendText(data[r][c]);
p2.Format.HorizontalAlignment = HorizontalAlignment.Center;
//データの書式を設定する
TR2.CharacterFormat.FontName = "Calibri";
TR2.CharacterFormat.FontSize = 11;
}
}
//ドキュメントを保存する
doc.SaveToFile("表の追加.docx", FileFormat.Docx2013);
}
}
}
Imports System.Drawing
Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields
Namespace WordTable
Class Program
Shared Sub Main(ByVal args() As String)
'Documentクラスのオブジェクトを作成する
Dim doc As Document = New Document()
'セクションを追加する
Dim s As Section = doc.AddSection()
'表のデータを定義する
Dim Header() As String = {"日付", "商品名", "販売地域", "在庫量", "注文量"}
Dim data()() As String = {New String() {"08/07/2021", "カヤック", "米国", "24", "16"}
,
New String()
{
"08/07/2021", "潜水機", "米国", "5","3"
}
,
New String()
{
"08/07/2021", "制御システム", "チェコ共和国", "165","216"
}
,
New String()
{
"08/08/2021", "二段レギュレータ", "米国", "98","88"
}
,
New String()
{
"08/08/2021", "個人用潜水ソナー", "米国", "46","45"
}
,
New String()
{
"08/09/2021", "コンパスコンソール", "米国", "211","300"
}
,
New String()
{
"08/09/2021", "制御システム", "イギリス", "166","100"
}
,
New String()
{
"08/10/2021", "予備のエアダンサ", "イギリス", "47","43"
}
,
}
'表を追加する
Dim table As Table = s.AddTable(True)
table.ResetCells(data.Length + 1, Header.Length)
'最初の行を表のヘッダーとして設定する
Dim FRow As TableRow = table.Rows(0)
FRow.IsHeader = True
'1列目の高さと色を設定する
FRow.Height = 23
FRow.RowFormat.BackColor = Color.LightSeaGreen
Dim i As Integer
For i = 0 To Header.Length - 1 Step i + 1
'セルの配置を設定する
Dim p As Paragraph = FRow.Cells(i).AddParagraph()
FRow.Cells(i).CellFormat.VerticalAlignment = VerticalAlignment.Middle
p.Format.HorizontalAlignment = HorizontalAlignment.Center
'データのフォーマットを設定する
Dim TR As TextRange = p.AppendText(Header(i))
TR.CharacterFormat.FontName = "Yu Gothic UI"
TR.CharacterFormat.FontSize = 12
TR.CharacterFormat.Bold = True
Next
'他の行にデータを追加し、セルの書式を設定する
Dim r As Integer
For r = 0 To data.Length - 1 Step r + 1
Dim DataRow As TableRow = table.Rows(r + 1)
DataRow.Height = 20
Dim c As Integer
For c = 0 To data(r).Length - 1 Step c + 1
DataRow.Cells(c).CellFormat.VerticalAlignment = VerticalAlignment.Middle
Dim p2 As Paragraph = DataRow.Cells(c).AddParagraph()
Dim TR2 As TextRange = p2.AppendText(data(r)(c))
p2.Format.HorizontalAlignment = HorizontalAlignment.Center
'データの書式を設定する
TR2.CharacterFormat.FontName = "Yu Mincho"
TR2.CharacterFormat.FontSize = 11
Next
Next
'ドキュメントを保存する
doc.SaveToFile("表の追加.docx", FileFormat.Docx2013)
End Sub
End Class
End Namespace
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Excel ワークシートの行と列のグループ化機能を使用すると、データをグループに分割できます。異なるグループは、異なるコンテンツを表示することができます。一部のグループを展開または折りたたむと、重要な情報を表示することもできます。この記事では、Spire.XLS for .NET を使用して、C# および VB.NET でプログラムによって Excel で行と列のグループ化とグループ削除の方法を紹介します。
まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.XLS
詳細な手順は次のとおりです。
using Spire.Xls;
namespace GroupRowsAndColumns
{
class Program
{
static void Main(string[] args)
{
//Workbookオブジェクトを作成する
Workbook workbook = new Workbook();
//サンプルドキュメントをロードする
workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.xlsx");
//最初のシートを取得する
Worksheet sheet = workbook.Worksheets[0];
//行をグループ化する
sheet.GroupByRows(2, 5, false);
sheet.GroupByRows(7, 10, false);
//列をグループ化する
sheet.GroupByColumns(5, 6, false);
//結果を別のExcelドキュメントに保存する
workbook.SaveToFile("GroupRowsAndColumns.xlsx", ExcelVersion.Version2016);
}
}
}
Imports Spire.Xls
Namespace GroupRowsAndColumns
Class Program
Shared Sub Main(ByVal args() As String)
'Workbookオブジェクトを作成する
Dim workbook As Workbook = New Workbook()
'サンプルドキュメントをロードする
workbook.LoadFromFile("C:\Users\Administrator\Desktop\sample.xlsx")
'最初のシートを取得する
Dim sheet As Worksheet = workbook.Worksheets(0)
'行をグループ化する
sheet.GroupByRows(2, 5, False)
sheet.GroupByRows(7, 10, False)
'列をグループ化する
sheet.GroupByColumns(5, 6, False)
'結果を別のExcelドキュメントに保存する
workbook.SaveToFile("GroupRowsAndColumns.xlsx", ExcelVersion.Version2016)
End Sub
End Class
End Namespace
詳細な手順は次のとおりです。
using Spire.Xls;
namespace UngroupRowsAndColumns
{
class Program
{
static void Main(string[] args)
{
//Workbookオブジェクトを作成する
Workbook workbook = new Workbook();
//サンプルドキュメントをロードする
workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.xlsx");
//最初のシートを取得する
Worksheet sheet = workbook.Worksheets[0];
//行のグループを削除する
sheet.UngroupByRows(2, 5);
sheet.UngroupByRows(7, 10);
//列のグループを削除する
sheet.UngroupByColumns(5, 6);
//結果を別のExcelドキュメントに保存する
workbook.SaveToFile("UngroupRowsAndColumns.xlsx", ExcelVersion.Version2016);
}
}
}
Imports Spire.Xls
Namespace UngroupRowsAndColumns
Class Program
Shared Sub Main(ByVal args() As String)
'Workbookオブジェクトを作成する
Dim workbook As Workbook = New Workbook()
'サンプルドキュメントをロードする
workbook.LoadFromFile("C:\Users\Administrator\Desktop\sample.xlsx")
'最初のシートを取得する
Dim sheet As Worksheet = workbook.Worksheets(0)
'行のグループを削除する
sheet.UngroupByRows(2, 5)
sheet.UngroupByRows(7, 10)
'列のグループを削除する
sheet.UngroupByColumns(5, 6)
'結果を別のExcelドキュメントに保存する
workbook.SaveToFile("UngroupRowsAndColumns.xlsx", ExcelVersion.Version2016)
End Sub
End Class
End Namespace
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Spire.Office 7.11.0のリリースを発表できることを嬉しく思います。このバージョンでは、Spire.PDFはドキュメントの圧縮機能と署名後にドキュメントをロックする機能をサポートしました。Spire.Presentationはグラフデータが「行と列の切り替え」機能を使用しているかどうかの検出をサポートしました。Spire.DocはWordからPDFとRTFへの変換機能を強化しました。Spire.XLSはExcelからPDF、XMLからExcelへの変換機能が強化されました。さらに、このバージョンでは、多くの既知の問題も修正しました。詳細は以下の内容を読んでください。
このバージョンでは、Spire.Doc,Spire.PDF,Spire.XLS,Spire.Email,Spire.DocViewer, Spire.PDFViewer,Spire.Presentation,Spire.Spreadsheet, Spire.OfficeViewer, Spire.DocViewer, Spire.Barcode, Spire.DataExportの最新バージョンが含まれています。
カテゴリー | ID | 説明 |
New feature | SPIREPDF-5086 | 署名後にドキュメントをロックする機能をサポートしました。
signature.Lock = true; |
New feature | - | ドキュメントの圧縮機能をサポートしました。
PdfCompressor compressor = new PdfCompressor(inputFile); compressor.CompressToFile(outputFile); |
Bug | SPIREPDF-724 | PDFを画像に変換する際にアプリカティオンが「KeyNotFoundException」をスローする問題が修正されました。 |
Bug | SPIREPDF-4718 | PDF印刷時のコンテンツ文字化けの問題が修正されました。 |
Bug | SPIREPDF-5485 | PDFをOFDに変換すると、アプリカティオンが「ArgumentOutOfRangeException」をスローする問題が修正されました。 |
Bug | SPIREPDF-5486 | PDFをSVGに変換する際にアプリカティオンが「ArgumentException」をスローする問題が修正されました。 |
Bug | SPIREPDF-5497 SPIREPDF-5526 |
PDFを画像に変換した後、内容が正しくない問題が修正されました。 |
Bug | SPIREPDF-5512 | PDFドキュメントをマージする際にアプリカティオンが「NullReferenceException」をスローする問題が修正されました。 |
Bug | SPIREPDF-5516 | PDFをOFDに変換した後、印鑑が失われる問題が修正されました。 |
Bug | SPIREPDF-5534 | 文書を分割する際にアプリカティオンが「NullReferenceException」をスローする問題が修正されました。 |
Bug | SPIREPDF-5549 | PDFを画像に変換する際に、アプリカティオンが「A generic error occurred in GDI+」をスローする問題が修正されました。 |
Bug | SPIREPDF-5468 | PDF を画像に変換する際に、アプリケーションが「System.IndexOutOfRangeException」をスローする問題が修正されました。 |
Bug | SPIREPDF-5478 | PDF をマージする際に、アプリケーションが「System.ArgumentOutOfRangeException」をスローする問題が修正されました。 |
Bug | SPIREPDF-5481 | ページの内容を再描画した後、保存した PDF ドキュメントを Adobe Acrobat Pro 9. で開くことに失敗した問題が修正されました。 |
カテゴリー | ID | 説明 |
New feature | - | グラフデータが「行と列の切り替え」機能を使用しているかどうかの検出をサポートしました。
bool result = chart.IsSwitchRowAndColumn(); |
Bug | SPIREPPT-2064 | PPT を PDF に変換した後の背景色が正しくない問題も修正されました。 |
カテゴリー | ID | 説明 |
Bug | SPIREDOC-7223 | NETCore dllを使用してWordをPDFに変換すると、Oleオブジェクトデータが正しくない問題が修正されました。 |
Bug | SPIREDOC-7288 | WordをPDFに変換した後、テーブルレイアウトが正しくない問題が修正されました。 |
Bug | SPIREDOC-7846 | WordをRTFに変換すると、ギリシャのテキストが文字化けしてしまう問題が修正されました。 |
Bug | SPIREDOC-8056 | WordをPDFに変換した後、一部のコンテンツの順序が逆になっていた問題が修正されました。 |
Bug | SPIREDOC-8178 | WordをPDFに変換すると、フッターの内容が完全に表示されない問題が修正されました。 |
Bug | SPIREDOC-8330 | RTFをWordに変換する際に、行送りが2倍から1倍になる問題が修正されました。 |
Bug | SPIREDOC-8355 | ドキュメントをロードすると、アプリケーションが「This is not a structured storage file」をスローする問題が修正されました。 |
Bug | SPIREDOC-8364 | WordをPDFに変換すると、数式の特殊記号が失われる問題が修正されました。 |
Bug | SPIREDOC-8372 | Wordドキュメントの文字数統計が正しくない問題が修正されました。 |
Bug | SPIREDOC-8373 | 保存されたdocxドキュメントのセルの配置方法が変更された問題が修正されました。 |
Bug | SPIREDOC-8385 | HTMLを画像に変換した後、ドキュメントの画像が失われていた問題が修正されました。 |
Bug | SPIREDOC-8406 | WordをPDFに変換すると、表の幅が正しくない問題が修正されました。 |
Bug | SPIREDOC-7535 | XMLに追加されたカスタム属性のラベル名とMS Wordが一致しない問題が修正されました。 |
Bug | SPIREDOC-8084 | WordをPDFに変換する際にlinuxシステムに「System.DivideByZeroException」がスローされていた問題が修正されました。 |
Bug | SPIREDOC-8191 | IFフィールド値の更新が正しくない問題が修正されました。 |
Bug | SPIREDOC-8198 | メールマージ後の数字デリミターが正しくない問題が修正されました。 |
Bug | SPIREDOC-8278 | WordをPDFに変換した後にテキストが失われていた問題が修正されました。 |
Bug | SPIREDOC-8353 | WordをPDFに変換すると空白ページが多くなる問題が修正されました。 |
Bug | SPIREDOC-8358 | Docドキュメントをロードする際にアプリカティオンが「ArgumentOutOfRangeException」をスローする問題が修正されました。 |
Bug | SPIREDOC-8377 | HTMLをPDFに変換する際にアプリカティオンが「ArgumentException」をスローする問題が修正されました。 |
Bug | SPIREDOC-8383 | WordをPDFに変換した後のテキストのインデントが正しくない問題が修正されました。 |
Bug | SPIREDOC-8391 | WordをHTMLに変換した後の数式の内容がはっきりしない問題が修正されました。 |
Bug | SPIREDOC-8402 | WordをHTMLに変換した後にテーブルの枠線が失われていた問題が修正されました。 |
Bug | SPIREDOC-8415 | HTMLをPDFに変換した後のタイトルレベルが正しくない問題が修正されました。 |
Bug | SPIREDOC-8444 | メールをマージしてPDFとして保存した後の形式が正しくない問題が修正されました。 |
Bug | SPIREDOC-8468 | ODTをPDFに変換した後にアプリカティオンが「StackOverflowException」をスローする問題が修正されました。 |
Bug | SPIREDOC-8495 | WordをPDFに変換した後の文字間に空白が多くなる問題が修正されました。 |
Bug | SPIREDOC-8540 | 新しいWordドキュメントにテーブルを挿入してPDFとして保存した後、テーブルの形式が正しくない問題が修正されました。 |
Bug | SPIREDOC-8555 | WordをPDFに変換した後の背面景色不連続な問題が修正されました。 |
Bug | SPIREDOC-8562 | 生成されたWordドキュメントをBeyond Compareツールで開く際に、ドキュメントの形式が正しくない問題が修正されました。 |
Bug | SPIREDOC-8588 | WordをPDFに変換した後の数式のベクトル記号が正しくない問題が修正されました。 |
カテゴリー | ID | 説明 |
Bug | SPIREXLS-3674 | ExcelをHTMLに変換した後、コンテンツフォーマットが一致しなかった問題が修正されました。 |
Bug | SPIREXLS-4074 | チェックボックスのテキストの取得に失敗した問題が修正されました。 |
Bug | SPIREXLS-4098 | グラフを画像に変換した後、凡例の順序が正しくない問題が修正されました。 |
Bug | SPIREXLS-4106 | ExcelをODSに変換した後、ドロップダウンボックスのフォーマットが正しくない問題が修正されました。 |
Bug | SPIREXLS-4111 | FirstColumnの取得が正しくない問題が修正されました。 |
Bug | SPIREXLS-4123 | XMLをExcelに変換した後、日付フォーマットが一致しなかった問題が修正されました。 |
Bug | SPIREXLS-4130 | 「inconsistent formula」エラーメッセージの消去に失敗した問題が修正されました。 |
Bug | SPIREXLS-4131 | ExcelをPDFに変換した後、形状が失われていた問題が修正されました。 |
Bug | SPIREXLS-4155 | 枠線スタイルを設定した後、効果が正しくない問題が修正されました。 |
Bug | SPIREXLS-4157 | シート名に「#」が含まれているExcelをロードする際にプログラムエラーが発生する問題が修正されました。 |
Bug | SPIREXLS-4162 | firstSheet.PageSetup.DifferentFirst = 0メソッドを使用して、トップページの異なるヘッダーのキャンセルに失敗した問題が修正されました。 |
Bug | SPIREXLS-4165 | 行の高さに自動適応する設定に失敗した問題が修正されました。 |
何らかの理由で PDF のページサイズを変更する必要がある場合があります。たとえば、印刷するファイルのページサイズとプリンタで使用する用紙サイズが異なります。この記事では、Spire.PDF for .NET を使用して、C# および VB.NET でプログラムによって PDF ページサイズを変更する方法を示します。
まず、Spire.PDF for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.PDF
PDF ファイルのページサイズを変更する方法は、新しい PDF ファイルを作成し、必要なサイズのページを追加することです。次に、元の PDF ファイルのページに基づいてテンプレートを作成し、新しい PDF ファイルのページにテンプレートを描画します。この方法では、元の PDF ファイルのテキスト、画像、その他の要素が保持されます。
Spire.PDF for .NET は、letter、legal、A0、A1、A2、A3、A4、B0、B1、B2、B3、B4 など、さまざまな標準用紙サイズをサポートしています。以下に詳細な操作手順を示します。
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
namespace ChangePageSizeToStandardPaperSize
{
class Program
{
static void Main(string[] args)
{
//PdfDocumentインスタンスを初期化する
PdfDocument originPdf = new PdfDocument();
//元のPDFドキュメントをロードする
originPdf.LoadFromFile("Sample.pdf");
//新しいPDFドキュメントを作成する
PdfDocument newPdf = new PdfDocument();
//元のPDFのページをループする
foreach(PdfPageBase page in originPdf.Pages)
{
//A 1サイズのページを新しいPDFに追加する
PdfPageBase newPage = newPdf.Pages.Add(PdfPageSize.A1, new PdfMargins(0));
//PdfTextLayoutインスタンスを作成する
PdfTextLayout layout = new PdfTextLayout();
//テキストレイアウトを1ページに設定する(設定されていない場合、コンテンツはページサイズに合わせてスケールできません)
layout.Layout = PdfLayoutType.OnePage;
//元のPDFのページに基づいてテンプレートを作成する
PdfTemplate template = page.CreateTemplate();
//テンプレートを新しいPDFのページに描画する
template.Draw(newPage, new PointF(0, 0), layout);
}
//結果文書を保存する
newPdf.SaveToFile("ChangePageSizeToA1.pdf");
}
}
}
Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Imports System.Drawing
Namespace ChangePageSizeToStandardPaperSize
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'PdfDocumentインスタンスを初期化する
Dim originPdf As PdfDocument = New PdfDocument()
'元のPDFドキュメントをロードする
originPdf.LoadFromFile("Sample.pdf")
'新しいPDFドキュメントを作成する
Dim newPdf As PdfDocument = New PdfDocument()
'元のPDFのページをループする
For Each page As PdfPageBase In originPdf.Pages
'A 1サイズのページを新しいPDFに追加する
Dim newPage As PdfPageBase = newPdf.Pages.Add(PdfPageSize.A1, New PdfMargins(0))
'PdfTextLayoutインスタンスを作成する
Dim layout As PdfTextLayout = New PdfTextLayout()
'テキストレイアウトを1ページに設定する(設定されていない場合、コンテンツはページサイズに合わせてスケールできません)
layout.Layout = PdfLayoutType.OnePage
'元のPDFのページに基づいてテンプレートを作成する
Dim template As PdfTemplate = page.CreateTemplate()
'テンプレートを新しいPDFのページに描画する
template.Draw(newPage, New PointF(0, 0), layout)
Next
'結果文書を保存する
newPdf.SaveToFile("ChangePageSizeToA1.pdf")
End Sub
End Class
End Namespace
Spire.PDF for .NET は、測定単位としてポイント(1/72インチ)を使用します。PDF のページサイズをインチやミリメートルなどの他の単位のカスタム用紙サイズに変更する必要がある場合は、PdfUnitConvertor クラスを使用してポイントに変換できます。
以下に詳細な操作手順を示します。
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
namespace ChangePageSizeToCustomPaperSize
{
class Program
{
static void Main(string[] args)
{
//PdfDocumentインスタンスを初期化する
PdfDocument originPdf = new PdfDocument();
//元のPDFドキュメントをロードする
originPdf.LoadFromFile("Sample.pdf");
//新しいPDFドキュメントを作成する
PdfDocument newPdf = new PdfDocument();
// PdfUnitConvertorインスタンスを初期化する
PdfUnitConvertor unitCvtr = new PdfUnitConvertor();
//カスタムサイズ(インチ)をポイントに変換する
float width = unitCvtr.ConvertUnits(6.5f, PdfGraphicsUnit.Inch, PdfGraphicsUnit.Point);
float height = unitCvtr.ConvertUnits(8.5f, PdfGraphicsUnit.Inch, PdfGraphicsUnit.Point);
//カスタムサイズから新しいSizeFインスタンスを作成して、新しいPDFのページサイズとして使用する
SizeF size = new SizeF(width, height);
//元のPDFのページをループする
foreach (PdfPageBase page in originPdf.Pages)
{
//新しいPDFにカスタムサイズ(6.5*8.5インチ)のページを追加する
PdfPageBase newPage = newPdf.Pages.Add(size, new PdfMargins(0));
//PdfTextLayoutインスタンスを初期化する
PdfTextLayout layout = new PdfTextLayout();
//テキストレイアウトを1ページに設定する(設定されていない場合、コンテンツはページサイズに合わせてスケールできません)
layout.Layout = PdfLayoutType.OnePage;
//元のPDFのページに基づいてテンプレートを作成する
PdfTemplate template = page.CreateTemplate();
//テンプレートを新しいPDFのページに描画する
template.Draw(newPage, new PointF(0, 0), layout);
}
//結果文書を保存する
newPdf.SaveToFile("ChangePageSizeToCustomSize.pdf");
}
}
}
Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Imports System.Drawing
Namespace ChangePageSizeToCustomPaperSize
Friend Class Program
Private Shared Sub Main(ByVal args As String())
' PdfDocumentインスタンスを初期化する
Dim originPdf As PdfDocument = New PdfDocument()
'元のPDFドキュメントをロードする
originPdf.LoadFromFile("Sample.pdf")
'新しいPDFドキュメントを作成する
Dim newPdf As PdfDocument = New PdfDocument()
' PdfUnitConvertorインスタンスを初期化する
Dim unitCvtr As PdfUnitConvertor = New PdfUnitConvertor()
'カスタムサイズ(インチ)をポイントに変換する
Dim width As Single = unitCvtr.ConvertUnits(6.5F, PdfGraphicsUnit.Inch, PdfGraphicsUnit.Point)
Dim height As Single = unitCvtr.ConvertUnits(8.5F, PdfGraphicsUnit.Inch, PdfGraphicsUnit.Point)
'カスタムサイズから新しいSizeFインスタンスを作成して、新しいPDFのページサイズとして使用する
Dim size As SizeF = New SizeF(width, height)
'元のPDFのページをループする
For Each page As PdfPageBase In originPdf.Pages
'新しいPDFにカスタムサイズ(6.5*8.5インチ)のページを追加する
Dim newPage As PdfPageBase = newPdf.Pages.Add(size, New PdfMargins(0))
'PdfTextLayoutインスタンスを初期化する
Dim layout As PdfTextLayout = New PdfTextLayout()
'テキストレイアウトを1ページに設定する(設定されていない場合、コンテンツはページサイズに合わせてスケールできません)
layout.Layout = PdfLayoutType.OnePage
'元のPDFのページに基づいてテンプレートを作成する
Dim template As PdfTemplate = page.CreateTemplate()
'テンプレートを新しいPDFのページに描画する
template.Draw(newPage, New PointF(0, 0), layout)
Next
'結果文書を保存する
newPdf.SaveToFile("ChangePageSizeToCustomSize.pdf")
End Sub
End Class
End Namespace
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Spire.Doc 10.11.0のリリースを発表できることを嬉しく思います。このバージョンでは、WordからPDFへの変換機能を強化しました。また、今回の更新では、XMLに追加されたカスタム属性のラベル名とMS Wordが一致しないなどの既知の問題が修正されました。詳細は以下の内容を読んでください。
カテゴリー | ID | 説明 |
Bug | SPIREDOC-7535 | XMLに追加されたカスタム属性のラベル名とMS Wordが一致しない問題が修正されました。 |
Bug | SPIREDOC-8084 | WordをPDFに変換する際にlinuxシステムに「System.DivideByZeroException」がスローされていた問題が修正されました。 |
Bug | SPIREDOC-8191 | IFフィールド値の更新が正しくない問題が修正されました。 |
Bug | SPIREDOC-8198 | メールマージ後の数字デリミターが正しくない問題が修正されました。 |
Bug | SPIREDOC-8278 | WordをPDFに変換した後にテキストが失われていた問題が修正されました。 |
Bug | SPIREDOC-8353 | WordをPDFに変換すると空白ページが多くなる問題が修正されました。 |
Bug | SPIREDOC-8358 | Docドキュメントをロードする際にアプリカティオンが「ArgumentOutOfRangeException」をスローする問題が修正されました。 |
Bug | SPIREDOC-8377 | HTMLをPDFに変換する際にアプリカティオンが「ArgumentException」をスローする問題が修正されました。 |
Bug | SPIREDOC-8383 | WordをPDFに変換した後のテキストのインデントが正しくない問題が修正されました。 |
Bug | SPIREDOC-8391 | WordをHTMLに変換した後の数式の内容がはっきりしない問題が修正されました。 |
Bug | SPIREDOC-8402 | WordをHTMLに変換した後にテーブルの枠線が失われていた問題が修正されました。 |
Bug | SPIREDOC-8415 | HTMLをPDFに変換した後のタイトルレベルが正しくない問題が修正されました。 |
Bug | SPIREDOC-8444 | メールをマージしてPDFとして保存した後の形式が正しくない問題が修正されました。 |
Bug | SPIREDOC-8468 | ODTをPDFに変換した後にアプリカティオンが「StackOverflowException」をスローする問題が修正されました。 |
Bug | SPIREDOC-8495 | WordをPDFに変換した後の文字間に空白が多くなる問題が修正されました。 |
Bug | SPIREDOC-8540 | 新しいWordドキュメントにテーブルを挿入してPDFとして保存した後、テーブルの形式が正しくない問題が修正されました。 |
Bug | SPIREDOC-8555 | WordをPDFに変換した後の背面景色不連続な問題が修正されました。 |
Bug | SPIREDOC-8562 | 生成されたWordドキュメントをBeyond Compareツールで開く際に、ドキュメントの形式が正しくない問題が修正されました。 |
Bug | SPIREDOC-8588 | WordをPDFに変換した後の数式のベクトル記号が正しくない問題が修正されました。 |
複雑で詳細な情報が多く含まれるワークシートは、読み解くのが困難です。より簡潔で、より理解しやすいスプレッドシート表示を作成するには、データをグループで整理し、類似した内容の行を折りたたむとよいでしょう。
この記事では、Spire.XLS for Java を使用して、プログラムによって Excel の行と列をグループ化またはグループ化解除する方法について説明します。
まず、Spire.XLS for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url> https://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls</artifactId>
<version>12.10.3</version>
</dependency>
</dependencies>
Spire.XLS for Java を使用して、行と列をグループ化する手順を説明します。
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class groupRowsAndColumns {
public static void main(String[] args) {
//Workbookクラスのオブジェクトを作成する
Workbook workbook = new Workbook();
//Excelファイルを読み込む
workbook.loadFromFile("Sample.xlsx");
//最初のワークシートを取得する
Worksheet sheet = workbook.getWorksheets().get(0);
//行をグループ化する
sheet.groupByRows(2, 5, false);
sheet.groupByRows(7, 10, false);
//列をグループ化する
sheet.groupByColumns(5, 6, false);
//Excelファイルを保存する
workbook.saveToFile("行と列のグループ化.xlsx", ExcelVersion.Version2016);
}
}
Spire.XLS for Java を使用して、行と列のグループ化を解除する手順は以下のとおりです。
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class ungroupRowsAndColumns {
public static void main(String[] args) {
//Workbookクラスのオブジェクトを作成する
Workbook workbook = new Workbook();
//エクセルファイルの読み込み
workbook.loadFromFile("行と列のグループ化.xlsx");
//最初のワークシートを取得する
Worksheet sheet = workbook.getWorksheets().get(0);
//行のグループ化を解除する
sheet.ungroupByRows(2, 5);
sheet.ungroupByRows(7, 10);
//カラムのグループ化を解除する
sheet.ungroupByColumns(5, 6);
//Excelファイルを保存する
workbook.saveToFile("行と列のグループ化の解除.xlsx", ExcelVersion.Version2016);
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
SmartArt グラフィックは、情報やアイデアを視覚的に表現したものです。普通のテキストをあらかじめ定義されたグラフィックに変えることができ、テキスト情報をより理解しやすくします。この記事では、Spire.Presentation for Java を使用してプログラム的に PowerPoint で SmartArt を作成し、そのレイアウトをカスタマイズする方法を示しています。
まず、Spire.Presentation for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.presentation</artifactId>
<version>7.10.1</version>
</dependency>
</dependencies>
詳細な手順は以下の通りです。
import com.spire.presentation.FileFormat;
import com.spire.presentation.ISlide;
import com.spire.presentation.Presentation;
import com.spire.presentation.diagrams.*;
public class addSmartArt {
public static void main(String[] args) throws Exception {
//Presentationクラスのオブジェクトを作成する
Presentation presentation = new Presentation();
//最初のスライドを取得する
ISlide slide = presentation.getSlides().get(0);
//スライドにSmartArt(組織図)を挿入する
ISmartArt smartArt = slide.getShapes().appendSmartArt(60, 60, 500, 400, SmartArtLayoutType.ORGANIZATION_CHART);
//SmartArtのスタイルと色を設定する
smartArt.setStyle(SmartArtStyleType.MODERATE_EFFECT);
smartArt.setColorStyle(SmartArtColorType.COLORFUL_ACCENT_COLORS_4_TO_5);
//すべての既定のノードを削除する
for (Object a : smartArt.getNodes()) {
smartArt.getNodes().removeNode(0);
}
//親ノードを追加する
ISmartArtNode node1 = smartArt.getNodes().addNode();
//4つの子ノードを追加する
ISmartArtNode node1_1 = node1.getChildNodes().addNode();
ISmartArtNode node1_2 = node1.getChildNodes().addNode();
ISmartArtNode node1_3 = node1.getChildNodes().addNode();
ISmartArtNode node1_4 = node1.getChildNodes().addNode();
//各ノードにテキストを追加し、そのフォントの大きさを設定する
node1.getTextFrame().setText("社長");
node1.getTextFrame().getTextRange().setFontHeight(14f);
node1_1.getTextFrame().setText("営業部長");
node1_1.getTextFrame().getTextRange().setFontHeight(12f);
node1_2.getTextFrame().setText("運営部長");
node1_2.getTextFrame().getTextRange().setFontHeight(12f);
node1_3.getTextFrame().setText("人事部長");
node1_3.getTextFrame().getTextRange().setFontHeight(12f);
node1_4.getTextFrame().setText("アカウントマネージャー");
node1_4.getTextFrame().getTextRange().setFontHeight(12f);
//ドキュメントを保存する
presentation.saveToFile("SmartArtの追加.pptx", FileFormat.PPTX_2010);
presentation.dispose();
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Spire.PDF 8.11.0 のリリースを発表できることを嬉しく思います。このバージョンでは、ドキュメントの圧縮機能と署名後にドキュメントをロックする機能をサポートしました。また、このリリースでは、PDFからOFD、SVG、および画像への変換機能も強化されました。さらに、PDFドキュメントをマージする際にアプリカティオンが「NullReferenceException」をスローするなど、既知の問題が修正されました。詳細は以下の内容を読んでください。
カテゴリー | ID | 説明 |
New feature | SPIREPDF-5086 | 署名後にドキュメントをロックする機能をサポートしました。
signature.Lock = true; |
New feature | - | ドキュメントの圧縮機能をサポートしました。
PdfCompressor compressor = new PdfCompressor(inputFile); compressor.CompressToFile(outputFile); |
Bug | SPIREPDF-724 | PDFを画像に変換する際にアプリカティオンが「KeyNotFoundException」をスローする問題が修正されました。 |
Bug | SPIREPDF-4718 | PDF印刷時のコンテンツ文字化けの問題が修正されました。 |
Bug | SPIREPDF-5485 | PDFをOFDに変換すると、アプリカティオンが「ArgumentOutOfRangeException」をスローする問題が修正されました。 |
Bug | SPIREPDF-5486 | PDFをSVGに変換する際にアプリカティオンが「ArgumentException」をスローする問題が修正されました。 |
Bug | SPIREPDF-5497 SPIREPDF-5526 |
PDFを画像に変換した後、内容が正しくない問題が修正されました。 |
Bug | SPIREPDF-5512 | PDFドキュメントをマージする際にアプリカティオンが「NullReferenceException」をスローする問題が修正されました。 |
Bug | SPIREPDF-5516 | PDFをOFDに変換した後、印鑑が失われる問題が修正されました。 |
Bug | SPIREPDF-5534 | 文書を分割する際にアプリカティオンが「NullReferenceException」をスローする問題が修正されました。 |
Bug | SPIREPDF-5549 | PDFを画像に変換する際に、アプリカティオンが「A generic error occurred in GDI+」をスローする問題が修正されました。 |
テキストの上に画像が表示されると、テキストが画像に覆われてしまい、表示できなくなります。このとき、文字と画像を同時に表示させるために、画像の透明度を設定することができます。この記事では、Spire.Presentation for Java を使用して、PowerPoint の特定のスライドに画像を挿入し、その画像の透明度を設定する方法を説明します。
まず、Spire.Presentation for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.presentation</artifactId>
<version>7.10.1</version>
</dependency>
</dependencies>
以下は、PowerPoint ドキュメントで画像の透明度を設定するために使用されるクラスとメソッドの表です。
クラス・メソッド | 説明 |
IAutoShape インターフェース | 形状を表す。 |
ShapeList クラス | 図形の集合を表す。 |
PictureFillFormat クラス | 画像の塗りつぶしスタイルを表す。 |
ShapeList.appendShape(ShapeType.shapeType, Rectangle2D.Double) メソッド | リストに新しい形状を追加します。 |
IAutoShape.getLine().setFillType(FillFormatType.value) メソッド | 線の塗りつぶし形式を設定します。 |
IAutoShape.getFill().setFillType(FillFormatType.value) メソッド | 形状の塗りつぶし形式を設定します。 |
IAutoShape.getFill().getPictureFill() Method | 画像塗りつぶし形式を取得します。 |
PictureFillFormat.setFillType(PictureFillType.value) メソッド | 画像の塗りつぶしモードを設定します。 |
PictureFillFormat.getPicture().setUrl(java.lang.String value) メソッド | 画像塗りつぶしのための画像の URL を設定します。 |
PictureFillFormat.getPicture().setTransparency()メソッド | 画像の塗りつぶしの透明度を設定します。 |
PowerPoint で画像に透明度を設定する手順を説明します。
import com.spire.presentation.*;
import com.spire.presentation.drawing.*;
import java.awt.geom.Rectangle2D;
public class setImageTransparency {
public static void main(String[] args) throws Exception {
//Presentationクラスのインスタンスを作成する
Presentation presentation = new Presentation();
//PowerPointのドキュメントを読み込む
presentation.loadFromFile("ドイツの情報.pptx");
//最初のスライドの指定位置に図形を挿入する
Rectangle2D.Double rect1 = new Rectangle2D.Double(50, 130, 200, 150);
IAutoShape shape = presentation.getSlides().get(1).getShapes().appendShape(ShapeType.RECTANGLE, rect1);
//図形を画像で塗りつぶす
//塗りつぶし形式の種類を設定する
shape.getLine().setFillType(FillFormatType.NONE);
//塗りつぶし種類を設定する
shape.getFill().setFillType(FillFormatType.PICTURE);
//画像のURLを設定する
shape.getFill().getPictureFill().getPicture().setUrl("https://icon-icons.com/downloadimage.php?id=29761&root=266/PNG/128/&file=Germany_29761.png");
//画像の塗りつぶしモードを設定する
shape.getFill().getPictureFill().setFillType(PictureFillType.STRETCH);
//画像の透明度を設定する
shape.getFill().getPictureFill().getPicture().setTransparency(70);
//ドキュメントを保存する
presentation.saveToFile("画像の透明度の設定.pptx", FileFormat.PPTX_2010);
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。