チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

Koohji

Koohji

Spire.Doc 11.5.6のリリースを発表できることを嬉しく思います。このリリースでは、グラフやSVGドキュメントを追加する機能がサポートされています。また、1ページに複数ページを印刷する機能もサポートされています。ページの内容や内容の座標を取得するなど、ページを操作する機能もサポートされています。詳細は以下の内容を読んでください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
New feature - グラフを追加する機能がサポートされています。
//Documentを作成する
Document document = new Document();

//新しいセクションを作成する
Section section = document.AddSection();

//新しい段落を作成してテキストを追加する
section.AddParagraph().AppendText("Column chart.");

//新しい段落を作成してカラムグラフを追加する
Paragraph newPara = section.AddParagraph();
ShapeObject shape = newPara.AppendChart(ChartType.Column, 500, 300);

//グラフのシリーズデータを消去して、新しいグラフで始める
Chart chart = shape.Chart;
chart.Series.Clear();

//カスタム・シリーズをグラフに追加します。X軸はカテゴリ、Y軸は対応する大きな数値です
chart.Series.Add("Test Series",
    new[] { "Word", "PDF", "Excel", "GoogleDocs", "Office" },
    new double[] { 1900000, 850000, 2100000, 600000, 1500000 });

//Y軸スケールラベルの数値フォーマットをカンマで数値をグループ化するように設定する
chart.AxisY.NumberFormat.FormatCode = "#,##0";

//docxファイルに保存する
document.SaveToFile("AppendColumnChart.docx", FileFormat.Docx);
//Documentを作成する
Document document = new Document();

//新しいセクションを作成する
Section section = document.AddSection();

//新しい段落を作成してテキストを追加する
section.AddParagraph().AppendText("Bubble chart.");

//新しい段落を作成してバブルグラフを追加する
Paragraph newPara = section.AddParagraph();
ShapeObject shape = newPara.AppendChart(ChartType.Bubble, 500, 300);

//グラフのシリーズデータを消去して、新しいグラフで始める
Chart chart = shape.Chart;
chart.Series.Clear();

//X/Y座標と各気泡直径を持つカスタムシリーズを追加する 
ChartSeries series = chart.Series.Add("Test Series",
    new[] { 2.9, 3.5, 1.1, 4.0, 4.0 },
    new[] { 1.9, 8.5, 2.1, 6.0, 1.5 },
    new[] { 9.0, 4.5, 2.5, 8.0, 5.0 });

//docxファイルに保存する
document.SaveToFile("AppendBubbleChart.docx", FileFormat.Docx);
//Documentを作成する
Document document = new Document();

//新しいセクションを作成する
Section section = document.AddSection();

//新しい段落を作成してテキストを追加する
section.AddParagraph().AppendText("Line chart.");

//新しい段落を作成して折れ線グラフを追加する
Paragraph newPara = section.AddParagraph();
ShapeObject shape = newPara.AppendChart(ChartType.Line, 500, 300);

//グラフのシリーズデータを消去して、新しいグラフで始める   
Chart chart = shape.Chart;
ChartTitle title = chart.Title;
title.Text = "My Chart";
ChartSeriesCollection seriesColl = chart.Series;
seriesColl.Clear();

//新しいデータをグラフに設定
string[] categories = { "C1", "C2", "C3", "C4", "C5", "C6" };
seriesColl.Add("AW Series 1", categories, new double[] { 1, 2, 2.5, 4, 5, 6 });
seriesColl.Add("AW Series 2", categories, new double[] { 2, 3, 3.5, 6, 6.5, 7 });

//docxファイルに保存するする
document.SaveToFile("AppendLineChart.docx", FileFormat.Docx);
//Documentを作成する
Document document = new Document();

//新しいセクションを作成する
Section section = document.AddSection();

//新しい段落を作成してテキストを追加する
section.AddParagraph().AppendText("Pie chart.");

//新しい段落を作成して円グラフを追加する
Paragraph newPara = section.AddParagraph();
ShapeObject shape = newPara.AppendChart(ChartType.Pie, 500, 300);
Chart chart = shape.Chart;

//各セクターのカテゴリ名とその頻度値を含むカスタムグラフシリーズを挿入する
ChartSeries series = chart.Series.Add("Test Series",
  new[] { "Word", "PDF", "Excel" },
  new[] { 2.7, 3.2, 0.8 });

//docxファイルに保存する
document.SaveToFile("AppendPieChart.docx", FileFormat.Docx);
//Documentを作成する
Document document = new Document();

//新しいセクションを作成する
Section section = document.AddSection();

//新しい段落を作成してテキストを追加する
section.AddParagraph().AppendText("Scatter chart.");

//新しい段落を作成して散布図を追加する
Paragraph newPara = section.AddParagraph();
ShapeObject shape = newPara.AppendChart(ChartType.Scatter, 450, 300);
Chart chart = shape.Chart;

//グラフのシリーズデータを消去して、新しいグラフで始める
chart.Series.Clear();

//5 点の X/Y 座標を持つシリーズを挿入する
chart.Series.Add("Scatter chart",
    new[] { 1.0, 2.0, 3.0, 4.0, 5.0 },
    new[] { 1.0, 20.0, 40.0, 80.0, 160.0 });

//docxファイルに保存する
document.SaveToFile("AppendScatterChart.docx", FileFormat.Docx);
//Documentを作成する
Document document = new Document();

//新しいセクションを作成する
Section section = document.AddSection();

//新しい段落を作成してテキストを追加する
section.AddParagraph().AppendText("Surface3D chart.");

//新しい段落を作成してsurface 3Dグラフを追加する
Paragraph newPara = section.AddParagraph();
ShapeObject shape = newPara.AppendChart(ChartType.Surface3D, 500, 300);

//グラフのシリーズデータを消去して、新しいグラフで始める
Chart chart = shape.Chart;
chart.Series.Clear();


chart.Title.Text = "My chart";

//3シリーズを追加する
chart.Series.Add("Series 1",
    new string[] { "Word", "PDF", "Excel", "GoogleDocs", "Office" },
    new double[] { 1900000, 850000, 2100000, 600000, 1500000 });

chart.Series.Add("Series 2",
    new string[] { "Word", "PDF", "Excel", "GoogleDocs", "Office" },
    new double[] { 900000, 50000, 1100000, 400000, 2500000 });

chart.Series.Add("Series 3",
    new string[] { "Word", "PDF", "Excel", "GoogleDocs", "Office" },
    new double[] { 500000, 820000, 1500000, 400000, 100000 });

//docxファイルに保存する
document.SaveToFile("AppendSurface3DChart.docx", FileFormat.Docx);
//Documentを作成する
Document document = new Document();

//新しいセクションを作成する
Section section = document.AddSection();

//新しい段落を作成してテキストを追加する
section.AddParagraph().AppendText("Bar chart.");

//新しい段落を作成して棒グラフを追加する
Paragraph newPara = section.AddParagraph();
ShapeObject chartShape = newPara.AppendChart(ChartType.Bar, 400, 300);
Chart chart = chartShape.Chart;

//「Title」プロパティを使用して、グラフ領域の上部中央に表示される棒グラフの見出しを提供する
ChartTitle title = chart.Title;
title.Text = "My Chart";

//「Show」プロパティを「true」に設定して見出しを表示する. 
title.Show = true;

//「Overlay」プロパティを「true」に設定します。他のグラフ要素がタイトルと重なるようにすることで、より多くのスペースを提供する
title.Overlay = true;

//docxファイルに保存する
document.SaveToFile("AppendBarChart.docx", FileFormat.Docx);
New feature - SVGドキュメントを追加する機能がサポートされています。
Document document = new Document();
Section section = document.AddSection();
string svgFile = "sample.svg";
Paragraph para = section.AddParagraph();
DocPicture svgPicture = para.AppendPicture(svgFile);
svgPicture.Width = 200;
svgPicture.Height = 200;
String DocxResult = "Result-AddSvg.docx";
document.SaveToFile(DocxResult, FileFormat.Docx2016);
New feature - 1ページに複数ページを印刷する機能がサポートされています。
doc.LoadFromFile(inputFile, FileFormat.Docx);
System.Windows.Forms.PrintDialog printDialog = new System.Windows.Forms.PrintDialog();
printDialog.PrinterSettings.PrintToFile = true;
printDialog.PrinterSettings.PrintFileName = "sample-new-4.xps";
doc.PrintDialog = printDialog;
doc.PrintMultipageToOneSheet(PagesPreSheet.FourPages, true);
New feature - ページの内容や内容の座標を取得するなど、ページを操作する機能がサポートされています。
Document doc = new Document();
doc.LoadFromFile(inputFile, FileFormat.Docx);
FixedLayoutDocument layoutDoc = new FixedLayoutDocument(doc);

//最初のページの行にアクセスし、コンソールに印刷する
FixedLayoutLine line = layoutDoc.Pages[0].Columns[0].Lines[0];

StringBuilder stringBuilder = new StringBuilder();
stringBuilder.AppendLine("Line: " + line.Text);

//レンダリングされた行には、元の段落を文書オブジェクトモデルから取得することができる
Paragraph para = line.Paragraph;
stringBuilder.AppendLine("Paragraph text: " + para.Text);

//ヘッダーとフッターを含むプレーンテキスト形式で、最初のページに表示されたすべてのテキストを取得する
string pageText = layoutDoc.Pages[0].Text;
stringBuilder.AppendLine(pageText);

//文書内の各ページをループし、各ページに表示される行数を印刷する
foreach (FixedLayoutPage page in layoutDoc.Pages)
{
    LayoutCollection lines = page.GetChildEntities(LayoutElementType.Line, true);
    stringBuilder.AppendLine("Page " + page.PageIndex + " has " + lines.Count + " lines.");
}

//このメソッドは、任意のノードのレイアウトエンティティの逆引き参照を提供する
//「ヘッダーとフッターのrunsとnodesを除く」
stringBuilder.AppendLine("The lines of the first paragraph:");
foreach (FixedLayoutLine paragraphLine in layoutDoc.GetLayoutEntitiesOfNode(
    ((Section)doc.FirstChild).Body.Paragraphs[0]))
{
    stringBuilder.AppendLine(paragraphLine.Text.Trim());
    stringBuilder.AppendLine(paragraphLine.Rectangle.ToString());
}
File.WriteAllText("page.txt", stringBuilder.ToString());
ここで Spire.Doc 11.5.6をダウンロードする

MS Word では、元のドキュメントから内容を手動で切り取り、新しいドキュメントに貼り付けることで、ドキュメントを分割することができます。この作業は簡単ですが、特に長いドキュメントを扱う場合、非常に面倒で時間がかかることもあります。この記事では、Spire.Doc for .NET を使用して、プログラムによって Word ドキュメントを複数のファイルに分割する方法について説明します。

Spire.Doc for .NET をインストールします

まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Doc

Word ドキュメントを改ページで分割する

Word ドキュメントには、改ページによって区切られた複数のページを含めることができます。Word ドキュメントを改ページで分割するには、以下の手順とコードを参照してください。

  • Document のインスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • 新しい Word ドキュメントを作成し、そこにセクションを追加します。
  • 元のドキュメントの各セクションにあるすべてのボディの子オブジェクトをループし、子オブジェクトが段落か表かを判断します。
  • セクションの子オブジェクトが表の場合は、Section.Body.ChildObjects.Add() メソッドを使用して、新規文書のセクションに直接追加します。
  • セクションの子オブジェクトが段落の場合、まず段落オブジェクトを新規文書のセクションに追加します。次に、段落の子オブジェクトをすべてループし、その子オブジェクトが改ページかどうかを判断します。
  • 段落の子オブジェクトが改ページであれば、そのインデックスを取得し、インデックスでその段落から改ページを削除します。
  • ドキュメントを保存し、上記の処理を繰り返します。
  • C#
  • VB.NET
using System;
using Spire.Doc;
using Spire.Doc.Documents;

namespace SplitByPageBreak
{
    class Program
    {
        static void Main(string[] args)
        {
            //Documentのインスタンスを作成する
            Document original = new Document();

            //Wordドキュメントを読み込む
            original.LoadFromFile("C:/サンプル.docx");

            //新しいWordドキュメントを作成し、それにセクションを追加する
            Document newWord = new Document();
            Section section = newWord.AddSection();
            int index = 0;

            //元のドキュメントに含まれるすべてのセクションをループする
            foreach (Section sec in original.Sections)
            {
                //各セクションのボディーの子オブジェクトをすべてループする。
                foreach (DocumentObject obj in sec.Body.ChildObjects)
                {
                    if (obj is Paragraph)
                    {
                        Paragraph para = obj as Paragraph;
                        sec.CloneSectionPropertiesTo(section);

                        //元のドキュメントのセクションにある段落オブジェクトを、新しいドキュメントのセクションに追加する
                        section.Body.ChildObjects.Add(para.Clone());

                        //各段落のすべての子オブジェクトをループし、オブジェクトが改ページであるかどうかを判断する
                        foreach (DocumentObject parobj in para.ChildObjects)
                        {
                            if (parobj is Break && (parobj as Break).BreakType == BreakType.PageBreak)
                            {
                                //段落内の改ページのインデックスを取得する
                                int i = para.ChildObjects.IndexOf(parobj);

                                //その段落から改ページを削除する
                                section.Body.LastParagraph.ChildObjects.RemoveAt(i);

                                //新しいWordドキュメントを保存する
                                newWord.SaveToFile(String.Format("result/分割-{0}.docx", index), FileFormat.Docx);
                                index++;

                                //新しいドキュメントを作成し、それにセクションを追加する
                                newWord = new Document();
                                section = newWord.AddSection();

                                //元のセクションの段落オブジェクトを、新しいドキュメントのセクションに追加する
                                section.Body.ChildObjects.Add(para.Clone());
                                if (section.Paragraphs[0].ChildObjects.Count == 0)
                                {
                                    //最初の空白の段落を削除する
                                    section.Body.ChildObjects.RemoveAt(0);
                                }
                                else
                                {
                                    //改ページ前の子オブジェクトを削除する
                                    while (i >= 0)
                                    {
                                        section.Paragraphs[0].ChildObjects.RemoveAt(i);
                                        i--;
                                    }
                                }
                            }
                        }
                    }
                    if (obj is Table)
                    {
                        //元セクションの表のオブジェクトを、新しいドキュメントのセクションに追加する
                        section.Body.ChildObjects.Add(obj.Clone());
                    }
                }
            }

            //ドキュメントを保存する
            newWord.SaveToFile(String.Format("result/分割-{0}.docx", index), FileFormat.Docx);

        }
    }
}
Imports System
Imports Spire.Doc
Imports Spire.Doc.Documents

Namespace SplitByPageBreak
    Class Program
        Shared Sub Main(ByVal args() As String)
            'Documentのインスタンスを作成する
            Dim original As Document = New Document()

            'Wordドキュメントを読み込む
            original.LoadFromFile("C:/サンプル.docx")

            '新しいWordドキュメントを作成し、それにセクションを追加する
            Dim NewWord As Document = New Document()
            Dim section As Section = NewWord.AddSection()
            Dim index As Integer = 0

            '元のドキュメントに含まれるすべてのセクションをループする
            Dim sec As Section
            For Each sec In original.Sections
                '各セクションのボディーの子オブジェクトをすべてループする。
                Dim obj As DocumentObject
                For Each obj In sec.Body.ChildObjects
                    If TypeOf obj Is Paragraph Then
                        Dim para As Paragraph = obj As Paragraph 
                        sec.CloneSectionPropertiesTo(section)

                        '元のドキュメントのセクションにある段落オブジェクトを、新しいドキュメントのセクションに追加する
                        section.Body.ChildObjects.Add(para.Clone())

                        '各段落のすべての子オブジェクトをループし、オブジェクトが改ページであるかどうかを判断する
                        Dim parobj As DocumentObject
                        For Each parobj In para.ChildObjects
                            If TypeOf parobj Is Break && (parobj as Break).BreakType = BreakType.PageBreak Then
                                '段落内の改ページのインデックスを取得する
                                Dim i As Integer = para.ChildObjects.IndexOf(parobj)

                                'その段落から改ページを削除する
                                section.Body.LastParagraph.ChildObjects.RemoveAt(i)

                                '新しいWordドキュメントを保存する
                                NewWord.SaveToFile(String.Format("result/分割-{0}.docx", index), FileFormat.Docx)
                                index = index + 1

                                '新しいドキュメントを作成し、それにセクションを追加する
                                NewWord = New Document()
                                section = NewWord.AddSection()

                                '元のセクションの段落オブジェクトを、新しいドキュメントのセクションに追加する
                                section.Body.ChildObjects.Add(para.Clone())
                                If section.Paragraphs(0).ChildObjects.Count = 0 Then
                                    '最初の空白の段落を削除する
                                    section.Body.ChildObjects.RemoveAt(0)
                                Else
                                    '改ページ前の子オブジェクトを削除する
                                    While i >= 0
                                        section.Paragraphs(0).ChildObjects.RemoveAt(i)
                                        i = i - 1
                                    End While
                                End If
                            End If
                        Next
                    End If
                    If TypeOf obj Is Table Then
                        '元セクションの表のオブジェクトを、新しいドキュメントのセクションに追加する
                        section.Body.ChildObjects.Add(obj.Clone())
                    End If
                Next
            Next

            'ドキュメントを保存する
            NewWord.SaveToFile(String.Format("result/分割-{0}.docx", index), FileFormat.Docx)

        End Sub
    End Class
End Namespace

C#/VB.NET:Word ドキュメントを分割する方法

Word ドキュメントをセクション区切りで分割する

Word ドキュメントでは、セクションは、それ自身のページ書式を含むドキュメントの一部分です。複数のセクションを含むドキュメントの場合、Spire.Doc for .NET はセクションの区切りによるドキュメントの分割もサポートしています。詳しい手順は以下の通りです。

  • Document のインスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • 新しい Document のオブジェクトを作成します。
  • 元の Word ドキュメントのすべてのセクションをループします。
  • Document.Sections.Clone() メソッドを使用して、元のドキュメントの各セクションをコピーします。
  • Document.Sections.Add() メソッドを使用して、コピーしたセクションを新しいセクションとして新しいドキュメントに追加します。
  • Document.SaveToFile() メソッドを使用して、ドキュメントを保存します。
  • C#
  • VB.NET
using System;
using Spire.Doc;

namespace SplitBySectionBreak
{
    class Program
    {
        static void Main(string[] args)
        {
            //Documentのインスタンスを作成する
            Document document = new Document();

            //Wordドキュメントを読み込む
            document.LoadFromFile("C:/サンプル.docx");

            //新しいDocumentのオブジェクトを作成する
            Document newWord;
            //元のドキュメント内のすべてのセクションをループする
            for (int i = 0; i < document.Sections.Count; i++)
            {
                newWord = new Document();

                //元ドキュメントの各セクションをコピーして、新しいセクションとして新ドキュメントに追加する
                newWord.Sections.Add(document.Sections[i].Clone());

                //ドキュメントを保存する
                newWord.SaveToFile(String.Format(@"test\出力_{0}.docx", i));
            }
        }
    }
}
Imports System
Imports Spire.Doc

Namespace SplitBySectionBreak
    Class Program
        Shared Sub Main(ByVal args() As String)
            'Documentのインスタンスを作成する
            Dim document As Document = New Document()

            'Wordドキュメントを読み込む
            document.LoadFromFile("C:/サンプル.docx")

            '新しいDocumentのオブジェクトを作成する
            Dim NewWord As Document
            '元のドキュメント内のすべてのセクションをループする
            Dim i As Integer
            For i = 0 To document.Sections.Count - 1 Step i + 1
                NewWord = New Document()

                '元ドキュメントの各セクションをコピーして、新しいセクションとして新ドキュメントに追加する
                NewWord.Sections.Add(document.Sections(i).Clone())

                'ドキュメントを保存する
                NewWord.SaveToFile(String.Format("test\出力_{0}.docx", i))
            Next
        End Sub
    End Class
End Namespace

C#/VB.NET:Word ドキュメントを分割する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Word ドキュメントにおいて、インデントとは、段落本文とページ余白の距離を調整するために使用される段落の書式です。左インデント、右インデント、最初の行のインデント、ぶら下げインデントがあります。左インデントと右インデントは段落のすべての行に適用できますが、最初の行のインデントは段落の最初の行にしか適用できません。ぶら下げインデントについては、段落の最初の行を除くすべての行に適用することができます。この記事では、Spire.Doc for .NET を使用して、プログラムで Word ドキュメントに段落インデントを設定する方法を紹介します。

Spire.Doc for .NET をインストールします

まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Doc

Word ドキュメントで段落のインデントの設定

以下の表は、Wordドキュメントで段落の異なるインデントを設定するために使用される、主要なクラスとプロパティの一部を示しています。

クラス/プロパティ 説明
ParagraphFormat クラス 段落の書式を表します。
ParagraphFormat.LeftIndent プロパティ 段落の左インデントを表す値を返送または設定します。
ParagraphFormat.RightIndent プロパティ 段落の右インデントを表す値を返送または設定します。
ParagraphFormat.FirstLineIndent プロパティ 最初の行またはぶら下げインデントの値を取得または設定します。正の値は最初の行のインデントを表し、負の値はぶら下げインデントを表します。

詳しい手順は以下の通りです。

  • Document のインスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • Document.Sections[] プロパティを使用して、指定したセクションを取得します。
  • Section.Paragraphs[] プロパティを使用して、指定した段落を取得します。
  • Paragraph.Format プロパティを使用して段落の書式を取得し、ParagraphFormat クラスの上記のプロパティを使用して段落のインデントを設定します。
  • Document.SaveToFile() メソッドを使用してドキュメントを保存します。
  • C#
  • VB.NET
using Spire.Doc;
using Spire.Doc.Documents;

namespace WordIndent
{
    class Program
    {
        static void Main(string[] args)
        {
            //Documentのインスタンスを作成する
            Document doc = new Document();

            //Wordドキュメントを読み込む
            doc.LoadFromFile("C:/サンプル 1.docx");

            //最初の段落を取得し、左インデントを設定する
            Paragraph para1 = doc.Sections[0].Paragraphs[1];
            para1.Format.LeftIndent = 30;

            //2段落目を取得し、右インデントを設定する
            Paragraph para2 = doc.Sections[0].Paragraphs[2];
            para2.Format.RightIndent = 30;

            //3段落目を取得し、最初の行のインデントを設定する
            Paragraph para3 = doc.Sections[0].Paragraphs[3];
            para3.Format.FirstLineIndent = 30;

            //4段落目を取得し、ぶら下げインデントを設定する
            Paragraph para4 = doc.Sections[0].Paragraphs[4];
            para4.Format.FirstLineIndent = -30;

            //ドキュメントを保存する
            doc.SaveToFile("インデントの設定.docx", FileFormat.Docx2010);
        }
    }
}
Imports Spire.Doc
Imports Spire.Doc.Documents

Namespace WordIndent
    Class Program
        Shared Sub Main(ByVal args() As String)
            'Documentのインスタンスを作成する
            Dim doc As Document = New Document()

            'Wordドキュメントを読み込む
            doc.LoadFromFile("C:/サンプル 1.docx")

            '最初の段落を取得し、左インデントを設定する
            Dim para1 As Paragraph = doc.Sections(0).Paragraphs(1)
            para1.Format.LeftIndent = 30

            '2段落目を取得し、右インデントを設定する
            Dim para2 As Paragraph = doc.Sections(0).Paragraphs(2)
            para2.Format.RightIndent = 30

            '3段落目を取得し、最初の行のインデントを設定する
            Dim para3 As Paragraph = doc.Sections(0).Paragraphs(3)
            para3.Format.FirstLineIndent = 30

            '4段落目を取得し、ぶら下げインデントを設定する
            Dim para4 As Paragraph = doc.Sections(0).Paragraphs(4)
            para4.Format.FirstLineIndent = -30

            'ドキュメントを保存する
            doc.SaveToFile("インデントの設定.docx", FileFormat.Docx2010)
        End Sub
    End Class
End Namespace

C#/VB.NET:Word ドキュメントで段落のインデントを設定する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

綴じ代(とじしろ)は、文書の既存のページ余白にスペースを加えることで、装丁時にテキストが隠れないように保証するための機能です。この機能は、重要な公式文書や書籍、試験などを装丁する場合に非常に役立ちます。この記事では、Spire.Doc for Java を使用して Word 文書のページ左側に綴じ代を設定する方法について説明します。

Spire.Doc for Java をインストールします

まず、Spire.Doc 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.doc</artifactId>
        <version>11.4.2</version>
    </dependency>
</dependencies>

Word で綴じ代を設定する

文書のページ余白を調整して装丁スペースを増やすよりも、綴じ代を直接設定する方が効果的です。以下は、Word 文書で綴じ代を設定する手順です。

  • Document インスタンスを作成します。
  • Document.loadFromFile() メソッドを使用して Word 文書をロードします。
  • Document.getSection().get() メソッドを使用して特定のセクションを取得します。
  • Section.getPageSetup().setGutter() メソッドを使用して、指定されたセクションの綴じ代を設定します。
  • Document.saveToFile() メソッドを使用して結果文書を保存します。
  • Java
import com.spire.doc.*;
import java.io.IOException;

public class addGutter {
    public static void main(String[] args) throws IOException {
        //Documentインスタンスを作成する
        Document document = new Document();

        //Word 文書をロードする
        document.loadFromFile("input.docx");

        //最初のセクションを取得する
        Section section = document.getSections().get(0);

        //綴じ代を設定する
        section.getPageSetup().setGutter(100f);

        //結果文書を保存する
        document.saveToFile("addGutter.docx", FileFormat.Docx);
    }
}

Java:Word で綴じ代を設定する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Spire.XLS 13.5.0のリリースを発表できることを嬉しく思います。このバージョンでは、ISO.CEILINGおよびWORKDAY.INTL関数をサポートしています。また、WPSのEVALUATE()関数もサポートしています。同時に、ExcelからHTMLおよび画像への変換機能も強化されました。多くの既知の問題も修正されました。例えば、文書を保存した後にメニューバーの機能エリアが正しく表示されない問題が修正されました。詳細は以下の内容を読んでください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
New feature SPIREXLS-4561 ISO.CEILING関数をサポートしています。
Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Formula = "ISO.CEILING(12.69,2)";
workbook.CalculateAllValue();
workbook.SaveToFile("result.xlsx",ExcelVersion.Version2016);
New feature SPIREXLS-4564 WORKDAY.INTL関数をサポートしています。
Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Formula = "=WORKDAY.INTL(DATE(2023,3,17),25,1,DATE(2023,3,20))";
workbook.CalculateAllValue();
workbook.SaveToFile("result.xlsx",ExcelVersion.Version2016);
New feature SPIREXLS-4608 WPSのEVALUATE()関数をサポートしています。
Bug SPIREXLS-4568 SheetをHTMLに並列変換する際に、アプリケーションが「System.ArgumentException」をスローする問題が修正されました。
Bug SPIREXLS-4575 一部のセルの色を塗ると他のセルも同様に塗られてしまう問題が修正されました。
Bug SPIREXLS-4599 一部のセルをコピーできない問題が修正されました。
Bug SPIREXLS-4600 ExcelをHTMLに変換する際、アプリケーションが「System.OutOfMemoryException」をスローする問題が修正されました。
Bug SPIREXLS-4607 Excelファイルを読み込む際にアプリケーションが「System.IndexOutOfRangeException」をスローする問題が修正されました。
Bug SPIREXLS-4613 文書を保存した後にメニューバーの機能エリアが正しく表示されない問題が修正されました。
Bug SPIREXLS-4626 隠れた行を削除した後に多数の空白列が生成される問題が修正されました。
Bug SPIREXLS-4627 .netstandardパッケージを使用してSheetを画像に変換する際、内容が正しくない問題が修正されました。
ここで Spire.XLS 13.5.0をダウンロードする

PDF は、標準的な形式で文書を転送するのに非常に適しています。どのデバイスやソフトウェアを使用して表示しても、文書形式は変わりません。しかし PDF ファイルは編集が難しい。PDF のスプレッドシートを処理する必要がある場合は、通常は Excel 形式に変換して Excel で編集するのが最も簡単です。この記事では、Spire.PDF for C++ を使用して C++ で PDF を Excel に変換する方法について説明します。

Spire.PDF for C++ をインストールします

Spire.PDF for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。

Spire.PDF for C++ を C++ アプリケーションに統合する方法

PDF を Excel に変換する

Spire.PDF for C++ は、PDF を XLSX などの文書形式に変換するための PdfDocument->SaveToFile() メソッドを提供します。変換する前に、PdfDocument->GetConvertOptions->SetPdfToXlsxOptions() メソッドを使用して変換オプションを設定できます。このメソッドは XlsxLineLayoutOptions オブジェクトをパラメーターとして使用します。XlsxLineLayoutOptions クラスのコンストラクタには、次の 5 つのパラメーターがあり、PDF を Excel に変換する方法を制御することができます。

  • bool convertToMultipleSheet:PDF の各ページを Excel のワークシートに変換するかどうかを決定します。
  • bool rotatedText:回転したテキストを表示するかどうかを決定します。
  • bool splitCell:PDF の複数行のテキストを含む表セルが Excel に変換されたときに複数行に分割されるかどうかを決定します。
  • bool wrapText:Excel のセル内でテキストを改行するかどうかを決定します。
  • bool overlapText:重なり合ったテキストを表示するかどうかを決定します。
  • C++
#include "Spire.Pdf.o.h";

using namespace Spire::Pdf;

int main() {

    //PdfDcoumentオブジェクトを作成する
    PdfDocument* doc = new PdfDocument();

    //PDFドキュメントをロードする
    doc->LoadFromFile(L"input.pdf");

    //XlsxLineLayoutOptionsオブジェクトを作成する
    XlsxLineLayoutOptions* options = new XlsxLineLayoutOptions(true, true, false, true, false);

    //PDFからXLSXへの変換オプションを設定する
    doc->GetConvertOptions()->SetPdfToXlsxOptions(options);

    //PDFドキュメントをExcelに保存する
    doc->SaveToFile(L"output/PdfToExcel.xlsx", FileFormat::XLSX);
	doc->Close();
	delete doc;
}

C++:PDF を Excel に変換する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Spire.XLS for Java 13.5.2のリリースを発表できることを嬉しく思います。このバージョンでは、ExcelからPDFへの変換機能が強化されました。また、Excelファイルを読み込む際に、アプリケーションが「java.lang.NullPointerException」をスローするなどの既知の問題も修正されました。詳細は以下をお読みください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
Bug SPIREXLS-4586 ExcelをPDFに変換する際に、テキストやラインの位置が不正確になる問題が修正されました。
Bug SPIREXLS-4606 sheet.insertArrayメソッドを使用してデータを挿入すると、正しい結果が得られない問題が修正されました。
Bug SPIREXLS-4612 Excelファイルを読み込む際に、アプリケーションが「java.lang.NullPointerException」をスローする問題が修正されました。
Bug SPIREXLS-4615 チャートを画像に変換する際に、トレンドラインが失われる問題が修正されました。
Bug SPIREXLS-4634 ExcelをPDFに変換する際に、アプリケーションが「java.lang.ArrayIndexOfBoundsException」をスローする問題が修正されました。
Bug SPIREXLS-4635 ExcelをPDFに変換する際に、アプリケーションが「java.lang.StringIndexOfBoundsException」をスローする問題が修正されました。
Bug SPIREXLS-4637 ExcelをPDFに変換する際に日付形式が正しくない問題が修正されました。
ここで Spire.XLS for Java 13.5.2をダウンロードする

PDF は Word 文書に比べて多くの利点があります。例えば、PDF にはレイアウトが固定されているため、さまざまなデバイスやオペレーティングシステムで文書を表示する際に、フォーマットや内容が変わらないことが保証されます。そのため、文書を共有したり転送したりする際には、Word 文書を PDF に変換することをお勧めします。この記事では、Spire.Doc for .NET を使用して、C# および VB.NET でプログラムによって Word を PDF に変換する方法を示します。

Spire.Doc for .NET をインストールします

まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Doc

Doc または Docx を PDF に変換する

Spire.Doc for .NET が提供する Document.SaveToFile(string fileName, FileFormat fileFormat) メソッドは、Word を PDF、XPS、HTML、RTF などとして保存することができます。Word 文書を一般的な PDF として保存するだけで、他の設定を必要としない場合は、次の手順に従います。

  • Document オブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用して、 Word 文書をロードします。
  • Doucment.SaveToFile() メソッドを使用して、Word を PDF に保存します。
  • C#
  • VB.NET
using Spire.Doc;

namespace ToPDF
{
    class Program
    {
        static void Main(string[] args)
        {
            //Documentオブジェクトを作成する
            Document document = new Document();

            //Word文書をロードする
            document.LoadFromFile(@"C:\Users\Administrator\Desktop\Test.docx");

            //文書をPDFとして保存する
            document.SaveToFile("ToPDF.pdf", FileFormat.PDF);
        }
    }
}
Imports Spire.Doc

Namespace ToPDF
    Class Program
        Private Shared Sub Main(ByVal args() As String)
            'Documentオブジェクトを作成する
            Dim document As Document = New Document

            'Word文書をロードする
            document.LoadFromFile("C:\Users\Administrator\Desktop\Test.docx")

            '文書をPDFとして保存する
            document.SaveToFile("ToPDF.pdf", FileFormat.PDF)
        End Sub
    End Class
End Namespace

C#/VB.NET:Word を PDF に変換する方法

Word をパスワードで保護された PDF に変換する

Word をパスワードで保護された PDF に変換するには、Document.SaveToFile(string fileName, ToPdfParameterList paramList) メソッドを使用できます。ToPdfParameterList パラメーターは、Word 文書が PDF に変換される方法を制御します。たとえば、変換中に文書を暗号化するかどうかなどがあります。詳細な手順は次のとおりです。

  • Document オブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用して Word 文書をロードします。
  • 変換オプションの設定に使用する ToPdfParameterList オブジェクトを作成します。
  • PDF の開くためのパスワードと権限のパスワードを指定します。
  • ToPdfParameterList.PdfSecurity.Encrypt() メソッドを使用して、2つのパスワードを設定します。
  • Doucment.SaveToFile(string fileName, ToPdfParameterList paramList) メソッドを使用して、Word 文書をパスワード付きで PDF に保存します。
  • C#
  • VB.NET
using Spire.Doc;

namespace ToPDFWithPassword
{
    class Program
    {
        static void Main(string[] args)
        {
            //Documentオブジェクトを作成する
            Document document = new Document();

            //Word文書をロードする
            document.LoadFromFile(@"C:\Users\Administrator\Desktop\Test.docx");

            //ToPdfParameterListインスタンスを作成する
            ToPdfParameterList parameters = new ToPdfParameterList();

            //PDFの開くためのパスワードと権限のパスワードを設定する
            string openPsd = "E-iceblue";
            string permissionPsd = "abc123";
            parameters.PdfSecurity.Encrypt(openPsd, permissionPsd, Spire.Pdf.Security.PdfPermissionsFlags.Default, Spire.Pdf.Security.PdfEncryptionKeySize.Key128Bit);

            //Wordをパスワードで保護されたPDFとして保存する
            document.SaveToFile("ToPDFWithPassword.pdf", parameters);
        }
    }
}
Imports Spire.Doc

Namespace ToPDFWithPassword
    Class Program
        Private Shared Sub Main(ByVal args() As String)
            'Documentオブジェクトを作成する
            Dim document As Document = New Document

            'Word文書をロードする
            document.LoadFromFile("C:\Users\Administrator\Desktop\Test.docx")

            'ToPdfParameterListインスタンスを作成する
            Dim parameters As ToPdfParameterList = New ToPdfParameterList

            'PDFの開くためのパスワードと権限のパスワードを設定する
            Dim openPsd As String = "E-iceblue"
            Dim permissionPsd As String = "abc123"
            parameters.PdfSecurity.Encrypt(openPsd, permissionPsd, Spire.Pdf.Security.PdfPermissionsFlags.Default, Spire.Pdf.Security.PdfEncryptionKeySize.Key128Bit)

            'Wordをパスワードで保護されたPDFとして保存する
            document.SaveToFile("ToPDFWithPassword.pdf", parameters)
        End Sub
    End Class
End Namespace

C#/VB.NET:Word を PDF に変換する方法

Word をブックマーク付きの PDF に変換する

ブックマークは文書の読みやすさを向上させることができます。Word を PDF に変換する場合、既存の Word 文書のブックマークを保持するか、見出しに基づいてブックマークを作成できます。以下は詳細な手順です。

  • Document オブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用して Word 文書をロードします。
  • 変換オプションの設定に使用する ToPdfParameterList オブジェクトを作成します。
  • ToPdfParameterList.CreateWordBookmarks プロパティを使用して、Word のブックマークに基づいて PDF にブックマークを作成します。
  • または、ToPdfParameterList.SetCreateWordBookmarksUsingHeadings プロパティを使用して、Word の見出しに基づいて PDF にブックマークを作成することもできます。
  • Doucment.SaveToFile(string fileName, ToPdfParameterList paramList) メソッドを使用して、Word をブックマーク付きの PDF に保存します。
  • C#
  • VB.NET
using Spire.Doc;

namespace ToPDFWithBookmarks
{
    class Program
    {
        static void Main(string[] args)
        {
            //Documentオブジェクトを作成する
            Document document = new Document();

            //Word文書をロードする
            document.LoadFromFile(@"C:\Users\Administrator\Desktop\Test.docx");

            //ToPdfParameterListオブジェクトを作成する
            ToPdfParameterList parameters = new ToPdfParameterList();

            //Wordのブックマークに基づいてPDFにブックマークを作成する
            parameters.CreateWordBookmarks = true;

            //Wordの見出しに基づいてPDFにブックマークを作成する
            //parameters.CreateWordBookmarksUsingHeadings= true;

            //文書をPDFとして保存する	
            document.SaveToFile("ToPDFWithBookmarks.pdf", parameters);
        }
    }
}
Imports Spire.Doc

Namespace ToPDFWithBookmarks
    Class Program
        Private Shared Sub Main(ByVal args() As String)
            'Documentオブジェクトを作成する
            Dim document As Document = New Document

            'Word文書をロードする
            document.LoadFromFile("C:\Users\Administrator\Desktop\Test.docx")

            'ToPdfParameterListオブジェクトを作成する
            Dim parameters As ToPdfParameterList = New ToPdfParameterList

            'Wordのブックマークに基づいてPDFにブックマークを作成する
            parameters.CreateWordBookmarks = True

            'Wordの見出しに基づいてPDFにブックマークを作成する
            'parameters.CreateWordBookmarksUsingHeadings= true;

            '文書をPDFとして保存する
            document.SaveToFile("ToPDFWithBookmarks.pdf", parameters)
        End Sub
    End Class
End Namespace

C#/VB.NET:Word を PDF に変換する方法

Word をフォントが埋め込まれた PDF に変換する

Word 文書で使用されているフォントを PDF 文書に埋め込むことで、PDF 文書が適切なフォントがインストールされていない任意のデバイスで同じように見えるようにすることができます。以下は詳細な手順です。

  • Document オブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用して Word 文書をロードします。
  • 変換オプションの設定に使用する ToPdfParameterList オブジェクトを作成します。
  • ToPdfParameterList.IsEmbeddedAllFonts プロパティを true に設定して、生成された PDF にフォントを埋め込みます。
  • Doucment.SaveToFile(string fileName, ToPdfParameterList paramList) メソッドを使用して文書を PDF に保存します。
  • C#
  • VB.NET
using Spire.Doc;

namespace ToPDFWithFontsEmbedded
{
    class Program
    {
        static void Main(string[] args)
        {
            //Documentオブジェクトを作成する
            Document document = new Document();

            //Word文書をロードする
            document.LoadFromFile(@"C:\Users\Administrator\Desktop\Test.docx");

            //ToPdfParameterListオブジェクトを作成する
            ToPdfParameterList parameters = new ToPdfParameterList();

            //生成されたPDFに特定のフォントを埋め込む
            parameters.IsEmbeddedAllFonts = true;

            //文書をPDFとして保存する
            document.SaveToFile("ToPDFWithFontsEmbedded.pdf", parameters);
        }
    }
}
Imports Spire.Doc

Namespace ToPDFWithFontsEmbedded
    Class Program
        Private Shared Sub Main(ByVal args() As String)
            'Documentオブジェクトを作成する
            Dim document As Document = New Document

            'Word文書をロードする
            document.LoadFromFile("C:\Users\Administrator\Desktop\Test.docx")

            'ToPdfParameterListオブジェクトを作成する
            Dim parameters As ToPdfParameterList = New ToPdfParameterList

            '生成されたPDFに特定のフォントを埋め込む
            parameters.IsEmbeddedAllFonts = True

            '文書をPDFとして保存する
            document.SaveToFile("ToPDFWithFontsEmbedded.pdf", parameters)
        End Sub
    End Class
End Namespace

C#/VB.NET:Word を PDF に変換する方法

Word から PDF への変換の画質を設定する

高品質の画像が多く含まれる文書のサイズは、通常は大きくなります。Word を PDF に変換する際に、画像の品質を圧縮するかどうかを決定できます。以下は詳細な手順です。

  • Document オブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用して Word 文書をロードします。
  • Document.JPEGQuality プロパティを使用して画質を設定します。
  • Doucment.SaveToFile() メソッドを使用して、文書を PDF に保存します。
  • C#
  • VB.NET
using Spire.Doc;

namespace SetImageQuality
{
    class Program
    {
        static void Main(string[] args)
        {
            //Documentオブジェクトを作成する
            Document document = new Document();

            //Word文書をロードする
            document.LoadFromFile(@"C:\Users\Administrator\Desktop\Test.docx");

            //画像を原図画質の40%に圧縮する
            document.JPEGQuality = 40;

            //原図画質を維持する
            //document.JPEGQuality = 100;

            //文書をPDFとして保存する
            document.SaveToFile("SetImageQuantity.pdf", FileFormat.PDF);
        }
    }
}
Imports Spire.Doc

Namespace SetImageQuality
    Class Program
        Private Shared Sub Main(ByVal args() As String)
            'Documentオブジェクトを作成する
            Dim document As Document = New Document

            'Word文書をロードする
            document.LoadFromFile("C:\Users\Administrator\Desktop\Test.docx")

            '画像を原図画質の40%に圧縮する
            document.JPEGQuality = 40

            '原図画質を維持する
            'document.JPEGQuality = 100;

            '文書をPDFとして保存する
            document.SaveToFile("SetImageQuantity.pdf", FileFormat.PDF)
        End Sub
    End Class
End Namespace

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

MS Word の「変更履歴」は、人がドキュメントに加えた改訂、修正、変更、編集、さらには提案やコメントを追跡できます。変更履歴をオンにした状態で改訂されたドキュメントを受け取った場合、元の内容を維持するために変更を元に戻すか、または変更を承諾するかを決定することができます。この記事では、Spire.Doc for .NET を使用して、プログラム的に Word ドキュメントのすべての変更履歴を承諾または元に戻す方法について説明します。

Spire.Doc for .NET をインストールします

まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Doc

Word ドキュメントの変更履歴をすべて承諾する

Spire.Doc for .NET が提供する Document.AcceptChanges() メソッドを使用すると、Word ドキュメント内のすべての変更を承諾することができます。詳しい手順は以下の通りです。

  • Document のインスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • Document.AcceptChanges() メソッドを使用して、ドキュメントのすべての変更を承諾します。
  • Document.SaveToFile() メソッドを使用してドキュメントを保存します。
  • C#
  • VB.NET
using Spire.Doc;

namespace AcceptTrackedChanges
{
    class Program
    {
        static void Main(string[] args)
        {
            //Documentのインスタンスを作成する
            Document doc = new Document();

            //Word ドキュメントを読み込む
            doc.LoadFromFile("C:/宇宙の視野.docx");

            //ドキュメントのすべての変更を承諾する
            doc.AcceptChanges();

            //ドキュメントを保存する
            doc.SaveToFile("変更履歴の承諾.docx", FileFormat.Docx);

        }
    }
}
Imports Spire.Doc

Namespace AcceptTrackedChanges
    Class Program
        Shared Sub Main(ByVal args() As String)
            'Documentのインスタンスを作成する
            Dim doc As Document = New Document()

            'Word ドキュメントを読み込む
            doc.LoadFromFile("C:/宇宙の視野.docx")

            'ドキュメントのすべての変更を承諾する
            doc.AcceptChanges()

            'ドキュメントを保存する
            doc.SaveToFile("変更履歴の承諾.docx", FileFormat.Docx)

        End Sub
    End Class
End Namespace

C#/VB.NET:Word ドキュメントで変更履歴を承諾・元に戻す方法

Word ドキュメントの変更履歴をすべて元に戻す

Spire.Doc for .NET は、Word ドキュメント内のすべての変更を元に戻すための Document.RejectChanges() メソッドも提供しています。詳しい手順は以下の通りです。

  • Document のインスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • Document.RejectChanges() メソッドを使用して、ドキュメントのすべての変更を元に戻します。
  • Document.SaveToFile() メソッドを使用してドキュメントを保存します。
  • C#
  • VB.NET
using Spire.Doc;

namespace RejectTrackedChanges
{
    class Program
    {
        static void Main(string[] args)
        {
            //Documentのインスタンスを作成する
            Document doc = new Document();

            //Word ドキュメントを読み込む
            doc.LoadFromFile("C:/宇宙の視野.docx");

            //ドキュメントのすべての変更点を元に戻す
            doc.RejectChanges();

            //ドキュメントを保存する
            doc.SaveToFile("変更履歴を元に戻す.docx", FileFormat.Docx);

        }
    }
}
Imports Spire.Doc

Namespace RejectTrackedChanges
    Class Program
        Shared Sub Main(ByVal args() As String)
            'Documentのインスタンスを作成する
            Dim doc As Document = New Document()

            'Word ドキュメントを読み込む
            doc.LoadFromFile("C:/宇宙の視野.docx")

            'ドキュメントのすべての変更点を元に戻す
            doc.RejectChanges()

            'ドキュメントを保存する
            doc.SaveToFile("変更履歴を元に戻す.docx", FileFormat.Docx)

        End Sub
    End Class
End Namespace

C#/VB.NET:Word ドキュメントで変更履歴を承諾・元に戻す方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

長い論文や研究報告書は、複数の人が共同で仕上げることが多いものです。時間を節約するために、各自が割り当てられた部分を別々のドキュメントで作業し、編集が終わった後にこれらのドキュメントを1つに統合することができます。この記事では、Word ドキュメントから別のドキュメントへ内容を手動でコピー&ペーストする方法とは別に、プログラム的に Spire.Doc for .NET を使用して Word ドキュメントを結合する以下の2つの方法について説明します。

Spire.Doc for .NET をインストールします

まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Doc

ファイル全体を挿入してドキュメントを結合する

Spire.Doc for .NET が提供する Document.InsertTextFromFile() メソッドは、他のドキュメントを完全にそのドキュメントに挿入して、Word ドキュメントを結合させます。このメソッドを使用すると、挿入されたドキュメントの内容は新しいページから開始されます。詳細な手順は以下の通りです。

  • Document のインスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して、元の Word ドキュメントを読み込みます。
  • Document.InsertTextFromFile() メソッドを使用して、元のドキュメントに別の Word ドキュメントを完全に挿入します。
  • Document.SaveToFile() メソッドを使用して、結果のドキュメントを保存します。
  • C#
  • VB.NET
using Spire.Doc;

namespace MergeWord
{
    class Program
    {
        static void Main(string[] args)
        {
            //Documentのインスタンスを作成する
            Document document = new Document();

            //元のWordドキュメントを読み込む
            document.LoadFromFile("C:/宇宙の視野.docx", FileFormat.Docx);

            //元のドキュメントに別のWordドキュメントを完全に挿入する
            document.InsertTextFromFile("C:/定義を超えた意味.docx", FileFormat.Docx);

            //結果ドキュメントを保存する
            document.SaveToFile("ドキュメントの結合.docx", FileFormat.Docx);
        }
    }
}
Imports Spire.Doc

Namespace MergeWord
    Class Program
        Shared Sub Main(ByVal args() As String)
            'Documentのインスタンスを作成する
            Dim document As Document = New Document()

            '元のWordドキュメントを読み込む
            document.LoadFromFile("C:/宇宙の視野.docx", FileFormat.Docx)

            '元のドキュメントに別のWordドキュメントを完全に挿入する
            document.InsertTextFromFile("C:/定義を超えた意味.docx", FileFormat.Docx)

            '結果ドキュメントを保存する
            document.SaveToFile("ドキュメントの結合.docx", FileFormat.Docx)
        End Sub
    End Class
End Namespace

C#/VB.NET:複数の Word ドキュメントを結合する方法

内容をコピーしてドキュメントを結合する

新しいページを始めずにドキュメントを結合したい場合、他のドキュメントの内容をクローンして、元のドキュメントの末尾に追加することができます。詳しい手順は以下の通りです。

  • 2つの Word ドキュメントを読み込みます。
  • 2番目のドキュメントをループして、Document.Sections プロパティを使用して、すべてのセクションを取得します。次に、すべてのセクションをループして、Section.Body.ChildObjects プロパティを使用して、その子オブジェクトを取得します。
  • Document.LastSection プロパティを使用して、最初のドキュメントで最後のセクションを取得します。そして、LastSection.Body.ChildObjects.Add() メソッドを使用して、子オブジェクトを最初のドキュメントで最後のセクションに追加します。
  • Document.SaveToFile() メソッドを使用して、結果のドキュメントを保存します。
  • C#
  • VB.NET
using Spire.Doc;

namespace MergeWord
{
    class Program
    {
        static void Main(string[] args)
        {
            //2つのWordドキュメントを読み込む
            Document doc1 = new Document("C:/宇宙の視野.docx");
            Document doc2 = new Document("C:/定義を超えた意味.docx");

            //2番目のドキュメントをループしてすべてのセクションを取得する
            foreach (Section section in doc2.Sections)
            {

                //2番目のドキュメントのセクションをループして、その子オブジェクトを取得する
                foreach (DocumentObject obj in section.Body.ChildObjects)
                {

                    //最初のドキュメントで最後のセクションを取得する
                    Section lastSection = doc1.LastSection;

                    //すべての子オブジェクトを、最初のドキュメントで最後のセクションに追加する
                    lastSection.Body.ChildObjects.Add(obj.Clone());
                }
            }

            // 結果ドキュメントを保存する
            doc1.SaveToFile("ドキュメントの結合.docx", FileFormat.Docx);
        }
    }
}
Imports Spire.Doc

Namespace MergeWord
    Class Program
        Shared Sub Main(ByVal args() As String)
            '2つのWordドキュメントを読み込む
            Dim doc1 As Document = New Document("C:/宇宙の視野.docx")
            Dim doc2 As Document = New Document("C:/定義を超えた意味.docx")

            '2番目のドキュメントをループしてすべてのセクションを取得する
            Dim section As Section
            For Each section In doc2.Sections

                '2番目のドキュメントのセクションをループして、その子オブジェクトを取得する
                Dim obj As DocumentObject
                For Each obj In section.Body.ChildObjects

                    '最初のドキュメントで最後のセクションを取得する
                    Dim lastSection As Section = doc1.LastSection

                    'すべての子オブジェクトを、最初のドキュメントで最後のセクションに追加する
                    lastSection.Body.ChildObjects.Add(obj.Clone())
                Next
            Next

            ' 結果ドキュメントを保存する
            doc1.SaveToFile("ドキュメントの結合.docx", FileFormat.Docx)
        End Sub
    End Class
End Namespace

C#/VB.NET:複数の Word ドキュメントを結合する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。