チュートリアル

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

Koohji

Koohji

Spire.PDF 9.8.5のリリースをお知らせいたします。このバージョンでは、PDF内で複数行のテキストを検索できない問題が修正されました。さらに、PDFに添付ファイルを追加する際にプログラムが「System.NullReferenceException」例外を発生する問題など、他の既知の問題も修正されました。詳細については、以下の内容をご覧ください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
Bug SPIREPDF-1752 overlayを作成した後、Adobeでドキュメントを開くとエラーが発生する問題が修正されました。
Bug SPIREPDF-5146 PDFドキュメントを復号化した後、透かしが変更される問題が修正されました。
Bug SPIREPDF-5865
SPIREPDF-6114
PDF内で複数行のテキストを検索できない問題が修正されました。
Bug SPIREPDF-6024 PdfHtmlLayoutFormatのFitToPageおよびFitToHTMLプロパティが機能しない問題が修正されました。
Bug SPIREPDF-6140 同じPDFドキュメントを複数回印刷すると、印刷出力ファイルのサイズが大きくなり、印刷にかかる時間が増える問題が修正されました。
Bug SPIREPDF-6150 両面印刷時にコンテンツの向きが間違っている問題が修正されました。
Bug SPIREPDF-6193 PDFドキュメントに添付ファイルを追加する際に、プログラムが「System.NullReferenceException」例外を発生する問題が修正されました。
ここで Spire.PDF 9.8.5をダウンロードする

異なるソースからのデータセットを結合したり、他のワークシートからデータをコピーしたりする際に、データが一致しない場合、重複した行が発生する可能性があります。これらの重複した行は、データの分析や計算に影響を与え、誤った結果を生み出す可能性があります。このような場合、データの正確性を確保するために、重複した行を削除することができます。この記事では、Spire.XLS for .NET を使用して Excel の重複した行を削除する方法について説明します。

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

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

PM> Install-Package Spire.XLS

Excel で重複する行を削除する

重複した行を手動で削除することは、非常に反復的で時間のかかる作業です。Spire.XLS for .NET を使用すると、すべての重複した行を一度に識別して削除できます。詳細な手順は次のとおりです。

  • Workbook インスタンスを作成します。
  • Workbook.LoadFromFile() メソッドを使用して Excel ドキュメントを読み込みます。
  • Workbook.Worksheets[sheetIndex] プロパティを使用して、指定されたワークシートをインデックスで取得します。
  • Worksheet.Range プロパティを使用して、操作したいセルの範囲を指定します。
  • 指定したセル範囲内に重複する内容を含む行を取得します。
  • すべての重複した行をループし、Worksheet.DeleteRow() メソッドを使用してそれらを削除します。
  • Workbook.SaveToFile() メソッドを使用して結果文書を保存します。
  • C#
  • VB.NET
using Spire.Xls;
using System.Linq;

namespace RemoveDuplicateRows
{
    class Program
    {
        static void Main(string[] args)
        {
            //Workbookインスタンスを作成する
            Workbook workbook = new Workbook();

            //Excelドキュメントを読み込む
            workbook.LoadFromFile("sample.xlsx");

            //最初のシートを取得する
            Worksheet sheet = workbook.Worksheets[0];

            //操作したいセルの範囲を指定する
            var range = sheet.Range["A1:A" + sheet.LastRow];

            //重複した行の番号を取得する
            var duplicatedRows = range.Rows
                   .GroupBy(x => x.Columns[0].DisplayedText)
                   .Where(x => x.Count() > 1)
                   .SelectMany(x => x.Skip(1))
                   .Select(x => x.Columns[0].Row)
                   .ToList();

            //重複した行を削除する        
            for (int i = 0; i < duplicatedRows.Count; i++)
            {
                sheet.DeleteRow(duplicatedRows[i] - i);
            }

            //結果文書を保存する
            workbook.SaveToFile("RemoveDuplicateRows.xlsx");
        }
    }
}
Imports Spire.XLS
Imports System.Linq

Namespace RemoveDuplicateRows
    Class Program
        Private Shared Sub Main(ByVal args() As String)
            'Workbookインスタンスを作成する
            Dim workbook As Workbook = New Workbook

            'Excelドキュメントを読み込む
            workbook.LoadFromFile("sample.xlsx")

            '最初のシートを取得する
            Dim sheet As Worksheet = workbook.Worksheets(0)

            '操作したいセルの範囲を指定する
            Dim range = sheet.Range(("A1:A" + sheet.LastRow))

            '重複した行の番号を取得する
            Dim duplicatedRows = range.Rows.GroupBy(Function(x) x.Columns(0).DisplayedText).Where(Function(x) x.Count() > 1).SelectMany(Function(x) x.Skip(1)).[Select](Function(x) x.Columns(0).Row).ToList()

            '重複した行を削除する                
            Dim i As Integer = 0
            Do While (i < duplicatedRows.Count)
                sheet.DeleteRow((duplicatedRows(i) - i))
                i = (i + 1)
            Loop

            '結果文書を保存する
            workbook.SaveToFile("RemoveDuplicateRows.xlsx")
        End Sub
    End Class
End Namespace

C#/VB.NET:Excel で重複する行を削除する方法

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

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

Spire.Doc for Java 11.8.1のリリースを発表できることを嬉しく思います。このバージョンで、とじしろの位置を設定する機能と、行単位で段落の前/後の間隔を設定する機能がサポートされています。さらに、WordをPDFに変換する際に、「java.lang.IllegalStateException」の例外が発生するなど、既知の問題も修正されました。詳細は以下の内容を読んでください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
New feature SPIREDOC-4902 とじしろの位置を設定する機能がサポートされています。
Document doc = new Document();
doc.loadFromFile(inputFile);
Section sec = doc.getSections().get(0);
sec.getPageSetup().isTopGutter(false);
sec.getPageSetup().setGutter(100f);
doc.saveToFile(outputFile, FileFormat.Docx);
New feature SPIREDOC-7838 行単位で段落の前/後の間隔を設定する機能がサポートされています。
paragraph.getFormat().setBeforeSpacingLines(5f);
paragraph.getFormat().setAfterSpacingLines(15f);
Bug SPIREDOC-4094 生成された目次の内容が正しくない問題が修正されました。
Bug SPIREDOC-8956 IBM jdk1.6を使用してDocx文書を保存できない問題が修正されました。
Bug SPIREDOC-9117
SPIREDOC-9647
WordをOFDに変換する際にフォントが埋め込まれない問題が修正されました。
Bug SPIREDOC-9135 WordをPDFに変換する際に「java.lang.IllegalStateException」の例外が発生する問題が修正されました。
Bug SPIREDOC-9193 WordをPDFに変換する際に表の内容が失われる問題が修正されました。
Bug SPIREDOC-9245 セクション区切り記号を挿入した後にブックマークを取得できない問題が修正されました。
Bug SPIREDOC-9282 WordをHTMLに変換する際に余分な目次タグが生成される問題が修正されました。
Bug SPIREDOC-9331 WordをPDFに変換する際に「java.lang.ClassCastException」の例外が発生する問題が修正されました。
Bug SPIREDOC-9401 WordをPDFに変換する際に順序なしリストのマーカーが欠落する問題が修正されました。
Bug SPIREDOC-9444 WordをPDFに変換する際にフッターの位置が正しくない問題が修正されました。
Bug SPIREDOC-9459 目次の更新に失敗する問題が修正されました。
Bug SPIREDOC-9464 WordをPDFに変換する際のページ分割の不一致の問題が修正されました。
Bug SPIREDOC-9481 WordをPDFに変換する際のヘッダーの内容の不一致の問題が修正されました。
Bug SPIREDOC-9519 WordをPDFに変換する際の句読点の配置の不一致の問題が修正されました。
Bug SPIREDOC-9530 フィールドの更新後にフィールドテキストのスタイルが適用されない問題が修正されました。
Bug SPIREDOC-9532 RTF文書の文書情報の取得に失敗する問題が修正されました。
Bug SPIREDOC-9574 文書を新しい文書として保存した後の文字間隔の不一致の問題が修正されました。
Bug SPIREDOC-9582 文書を新しい文書として保存した後のアートスタイルの不一致の問題が修正されました。
Bug SPIREDOC-9584 Wordを画像に変換する際のコンテンツの位置の不一致の問題が修正されました。
Bug SPIREDOC-9613 WordをPDFに変換する際のコンテンツの文字化けの問題が修正されました。
Bug SPIREDOC-9584 Wordを画像に変換する際のコンテンツの位置の不一致の問題が修正されました。
Bug SPIREDOC-9626 Wordを画像に変換する際の円グラフのパーセンテージ小数の欠落の問題が修正されました。
Bug SPIREDOC-9628 Doc文書の読み込み時に「java.lang.NullPointerException」の例外が発生する問題が修正されました。
Bug SPIREDOC-9645 Docx文書内の画像の置換後、編集可能な領域の制限が編集不可になる問題が修正されました。
Bug SPIREDOC-9687 WordをPDFに変換する際に選択したチェックボックスが失われる問題が修正されました。
Bug SPIREDOC-9719 WordをPDFに変換する際の表のフォーマットエラーの問題が修正されました。
ここで Spire.Doc for Java 11.8.1をダウンロードする

PowerPoint を HTML に変換することで、文書のアクセシビリティとインタラクティビティが最適化されます。PowerPoint のプレゼンテーションを HTML 形式に変換することで、さまざまなプラットフォームやデバイスで簡単に共有することができます。オンラインでスライドを共有するか、ウェブページにシームレスに統合するかに関係なく、PowerPoint を HTML に変換することは素晴らしい選択です。この記事では、Spire.Presentation for Java を使用して PowerPoint ファイルを HTML に変換する方法を示します。

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

まず、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>8.7.3</version>
    </dependency>
</dependencies>

PowerPoint プレゼンテーションを HTML に変換する

Spire.Presentation for Java を使用すると、PowerPoint ファイルを HTML 形式に変換することができます。詳細な手順は次のとおりです。

  • Presentationクラスのインスタンスを初期化します。
  • Presentation.loadFromFile() メソッドを使用してサンプルPowerPointファイルをロードします。
  • Presentation.saveToFile() メソッドを使用して、PowerPointプレゼンテーションを HTML として保存します。
  • Java
import com.spire.presentation.FileFormat;
import com.spire.presentation.Presentation;

public class ToHtml {
    public static void main(String[] args) throws Exception {

        //Presentationクラスのインスタンスを初期化する
        Presentation presentation = new Presentation();

        //PowerPointファイルをロードする

        presentation.loadFromFile("sample.pptx");

        //ファイルをHTML形式で保存する
        presentation.saveToFile("ToHtml.html", FileFormat.HTML);
        presentation.dispose();
    }
}

Java:PowerPoint を HTML に変換する方法

特定の PowerPoint スライドを HTML に変換する

場合によっては、プレゼンテーション全体ではなく、特定のスライドを HTML に変換する必要があることがあります。そのような場合、Spire.Presentation for Java では、ISlide.saveToFile() メソッドを使用してスライドを HTML 形式に変換することができます。詳細な手順は次のとおりです。

  • Presentation クラスのインスタンスを初期化します。
  • Presentation.loadFromFile() メソッドを使用してサンプル PowerPoint ファイルをロードします。
  • Presentation.getSlides().get() メソッドを使用して特定のスライドを取得します。
  • ISlide.saveToFile() メソッドを使用して、PowerPoint スライドを HTML に保存します。
  • Java
import com.spire.presentation.FileFormat;
import com.spire.presentation.Presentation;
import com.spire.presentation.ISlide;

public class ConvertSpecificSlideToHtml { public static void main(String[] args) throws Exception {

    //Presentationクラスのインスタンスを初期化する
    Presentation presentation = new Presentation();

    //PowerPointファイルをロードする
    presentation.loadFromFile("sample.pptx");

    //インデックスで特定のスライドを取得する
    ISlide slide = presentation.getSlides().get(1);

    //特定のスライドをHTML形式で保存する
    slide.saveToFile("SpecificSlideToHtml.html", FileFormat.HTML);
    slide.dispose();
}
}

Java:PowerPoint を HTML に変換する方法

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

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

PowerPoint プレゼンテーションのドキュメント プロパティは、プレゼンテーションの管理と整理において非常に価値があります。タイトル、著者、キーワードなどのプロパティに含まれる情報は、簡潔な要約を提供し、分類や検索の支援を行い、包括的なプレゼンテーションの履歴の維持に貢献します。しかし、いくつかの不要なドキュメント プロパティは削除する必要があります。これにより、ドキュメントの管理に影響を及ぼすことを防ぐことができます。この記事では、Spire.Presentation for Java を使用して、PowerPoint プレゼンテーションのドキュメントプロパティを追加、取得、または削除する方法を説明します。

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

まず、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>8.7.3</version>
    </dependency>
</dependencies>

PowerPoint プレゼンテーションにドキュメント プロパティを追加

Spire.Presentation for Java では、Presentation.getDocumentProperty() メソッドでドキュメントプロパティを取得した後、IDocumentProperty クラスのメソッドでプレゼンテーションのドキュメントプロパティを設定、取得することができます。PowerPoint プレゼンテーションにドキュメントプロパティを追加するための詳細な手順は次のとおりです。

  • Presentation クラスのオブジェクトを作成します。
  • Presentation.loadFromFile() メソッドを使用してプレゼンテーション ファイルを読み込みます。
  • Presentation.getDocumentProperty() メソッドを使用してプレゼンテーションのドキュメント プロパティを取得します。
  • IDocumentProperty クラスのメソッドを使用してドキュメント プロパティを設定します。
  • Presentation.saveToFile() メソッドを使用してプレゼンテーションを保存します。
  • Java
import com.spire.presentation.FileFormat;
import com.spire.presentation.IDocumentProperty;
import com.spire.presentation.Presentation;

public class addPresentationProperties {
    public static void main(String[] args) throws Exception {
        //Presentationクラスのオブジェクトを作成する
        Presentation presentation = new Presentation();

        //プレゼンテーションを読み込む
        presentation.loadFromFile("サンプル.pptx");

        //プレゼンテーションのドキュメント プロパティを取得し、プロパティ情報を設定する
        IDocumentProperty property = presentation.getDocumentProperty();
        property.setTitle("年次経営分析報告書");
        property.setSubject("経営分析");
        property.setAuthor("文室 信子");
        property.setManager("松尾 敏紀");
        property.setCompany("E-iceblue");
        property.setCategory("報告書");
        property.setKeywords("事業分析; 四半期事業データ; 成長データ");
        property.setComments("報告書は改訂され、最終版となった。");

        //プレゼンテーションを保存する
        presentation.saveToFile("プロパティの追加.pptx", FileFormat.AUTO);
        presentation.dispose();
    }
}

Java:PowerPoint ドキュメントのプロパティの追加、取得、削除

PowerPoint プレゼンテーションからドキュメント プロパティを取得

PowerPoint プレゼンテーションからドキュメントプロパティを取得するための詳細な手順は以下のとおりです。

  • Presentation クラスのオブジェクトを作成します。
  • Presentation.loadFromFile() メソッドを使用してプレゼンテーション ファイルを読み込みます。
  • Presentation.getDocumentProperty() メソッドを使用して、プレゼンテーションのプロパティを取得します。
  • IDocumentProperty クラスのメソッドを使用してプロパティ情報を取得し、テキストファイルに書き込みます。
  • Java
import com.spire.presentation.IDocumentProperty;
import com.spire.presentation.Presentation;

import java.io.FileWriter;

public class retrievePresentationProperties {
    public static void main(String[] args) throws Exception {
        //Presentationクラスのオブジェクトを作成する
        Presentation presentation = new Presentation();

        //プレゼンテーションを読み込む
        presentation.loadFromFile("プロパティの追加.pptx");

        //プレゼンテーションのドキュメント プロパティを取得する
        IDocumentProperty property = presentation.getDocumentProperty();

        //文書のプロパティ データを取得し、テキスト ファイルに書き込む
        String properties = "タイトル:" + property.getTitle() + "\r\n"
                + "サブタイトル:" + property.getSubject() + "\r\n"
                + "作成者:" + property.getAuthor() + "\r\n"
                + "管理者:" + property.getManager() + "\r\n"
                + "会社名:" + property.getCompany() + "\r\n"
                + "分類:" + property.getCategory() + "\r\n"
                + "キーワード:" + property.getKeywords() + "\r\n"
                + "コメント:" + property.getComments();
        FileWriter presentationProperties = new FileWriter("プロパティの取得.txt");
        presentationProperties.write(properties);
        presentationProperties.close();
    }
}

Java:PowerPoint ドキュメントのプロパティの追加、取得、削除

PowerPoint プレゼンテーションのドキュメント プロパティを削除

プレゼンテーションからドキュメント プロパティを削除するのは、プロパティを追加するのと似ています。プロパティ データを空値に設定するだけで、ドキュメント プロパティを削除することができます。詳細は以下の通りです。

  • Presentation クラスのオブジェクトを作成します。
  • Presentation.loadFromFile() メソッドを使用してプレゼンテーション ファイルを読み込みます。
  • Presentation.getDocumentProperty() メソッドを使用して、プレゼンテーションのドキュメント プロパティを取得します。
  • IDocumentProperty クラスのメソッドを使用して、ドキュメント プロパティを空白に設定します。
  • Presentation.saveToFile() メソッドを使用してプレゼンテーションを保存します。
  • Java
import com.spire.presentation.FileFormat;
import com.spire.presentation.IDocumentProperty;
import com.spire.presentation.Presentation;

public class deletePresentationProperties {
    public static void main(String[] args) throws Exception {
        //Presentationクラスのオブジェクトを作成する
        Presentation presentation = new Presentation();

        //プレゼンテーションを読み込む
        presentation.loadFromFile("プロパティの追加.pptx");

        //プレゼンテーションのドキュメント プロパティを取得し、プロパティを空白に設定する
        IDocumentProperty property = presentation.getDocumentProperty();
        property.setTitle(" ");
        property.setSubject("");
        property.setAuthor("");
        property.setManager("");
        property.setCompany("");
        property.setCategory("");
        property.setKeywords("");
        property.setComments("");

        //プレゼンテーションを保存する
        presentation.saveToFile("プロパティの削除.pptx", FileFormat.AUTO);
        presentation.dispose();
    }
}

Java:PowerPoint ドキュメントのプロパティの追加、取得、削除

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

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

Spire.Doc 11.8.2のリリースを発表できることを嬉しく思います。このバージョンでは、ShapeObject オブジェクトの AllowOverlap および BehindText プロパティが公開されました。詳細は以下の内容を読んでください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
New feature SPIREDOC-9758 ShapeObject オブジェクトの AllowOverlap および BehindText プロパティが公開されました。
ここで Spire.Doc 11.8.2をダウンロードする

PDF のレイヤーとは、ドキュメントのコンテンツをグループ化して階層化する方法であり、オプションコンテンツグループ(OCG)オブジェクトを使用してサポートされています。ユーザーは必要に応じて異なるレイヤーを選択的に表示または非表示にすることができます。PDF のレイヤーは通常、テキスト、画像、図形、注釈などのドキュメントの視覚要素を管理するために使用されます。これらの要素を異なるレイヤーに配置することで、ユーザーはドキュメントの可視性とレイアウトを簡単に制御することができます。この記事では、Spire.PDF for Java を使用して Java プログラムを介して PDF ドキュメントにレイヤーを追加、非表示にしたり削除したりする方法について説明します。

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

まず、Spire.PDF 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.pdf</artifactId>
        <version>9.7.8</version>
    </dependency>
</dependencies>

PDF ドキュメントにレイヤーを追加する

Spire.PDF for Java は、PDF ドキュメントにレイヤーを追加する PdfDocument.getLayers().addLayer() メソッドを提供します。 その具体的な手順は以下の通りです。

  • PdfDocument クラスのオブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッドを使用して PDF ファイルを読み込みます。
  • PdfDocument.getLayers().addLayer(java.lang.String name) メソッドを使用して、PDF にレイヤーを追加し、名前を指定します。 また、PdfDocument.getLayers().addLayer(java.lang.String name, PdfVisibility state) メソッドを使用して、レイヤーを追加する際にレイヤーの可視性を設定することもできます。
  • PdfLayer.createGraphics() メソッドを使用して、レイヤー用のキャンバスを作成します。
  • キャンバスにテキストや画像などの要素を描画します。
  • PdfDocument.saveToFile() メソッドを使用して、結果のドキュメントを保存します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.*;
import com.spire.pdf.graphics.layer.PdfLayer;

import java.awt.*;
import java.awt.geom.Dimension2D;
import java.io.IOException;

public class addLayersToPdf {

    public static void main(String[] args) throws IOException {

        //PdfDocumentクラスのオブジェクトを作成する
        PdfDocument pdf = new PdfDocument();

        //PDFドキュメントを読み込む
        pdf.loadFromFile("サンプル.pdf");

        //AddLayerWatermarkメソッドを使用してウォーターマークのレイヤーを追加する
        AddLayerWatermark(pdf);

        //AddLayerHeaderメソッドを使用してヘッダーのレイヤーを追加する
        AddLayerHeader(pdf);

        //ドキュメントを保存する
        pdf.saveToFile("レイヤーの追加.pdf");
        pdf.dispose();
    }

    private static void AddLayerWatermark(PdfDocument doc) {

        //"透かし"という名前のレイヤーを作成する
        PdfLayer layer = doc.getLayers().addLayer("透かし");

        //フォントを作成する
        PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("HarmonyOS Sans SC Medium", Font.PLAIN, 48), true);

        //透かしのテキストを指定する
        String watermarkText = "オリジナル";

        //テキストのサイズを取得する
        Dimension2D fontSize = font.measureString(watermarkText);

        //オフセットを計算する
        float offset1 = (float) (fontSize.getWidth() * Math.sqrt(2) / 4);
        float offset2 = (float) (fontSize.getHeight() * Math.sqrt(2) / 4);

        //ページ数を取得する
        int pageCount = doc.getPages().getCount();

        //2つの変数を宣言する
        PdfPageBase page;
        PdfCanvas canvas;

        //すべてのページをループで処理する
        for (int i = 0; i < pageCount; i++) {

            page = doc.getPages().get(i);

            //レイヤーにキャンバスを作成する
            canvas = layer.createGraphics(page.getCanvas());
            canvas.translateTransform(canvas.getSize().getWidth() / 2 - offset1 - offset2, canvas.getSize().getHeight() / 2 + offset1 - offset2);
            canvas.setTransparency(0.4f);
            canvas.rotateTransform(-45);

            //テキストをレイヤーのキャンバスに描画する
            canvas.drawString(watermarkText, font, PdfBrushes.getDarkBlue(), 0, 0);
        }
    }

    private static void AddLayerHeader(PdfDocument doc) {

        //"ヘッダー"という名前のレイヤーを作成する
        PdfLayer layer = doc.getLayers().addLayer("ヘッダー");

        //ページのサイズを取得する
        Dimension2D size = doc.getPages().get(0).getSize();

        //ページ数を取得する
        int pageCount = doc.getPages().getCount();

        //2つの変数を宣言する
        PdfPageBase page;
        PdfCanvas canvas;

        //すべてのページをループで処理する
        for (int i = 0; i < pageCount; i++) {

            //レイヤーに画像を描画する
            PdfImage pdfImage = PdfImage.fromFile("ヘッダー.jpg");
            page = doc.getPages().get(i);
            float width = pdfImage.getWidth();
            float height = pdfImage.getHeight();
            float x = (float) size.getWidth() / 2 - width / 2;
            float y = 30;
            canvas = layer.createGraphics(page.getCanvas());
            canvas.drawImage(pdfImage, x, y, width, height);

            //レイヤーに線を描画します
            PdfPen pen = new PdfPen(PdfBrushes.getDarkGray(), 2f);
            canvas.drawLine(pen, x, y + height + 5, size.getWidth() - x, y + height + 2);
        }
    }
}

Java:PDF レイヤーの追加、非表示、削除

PDF ドキュメントのレイヤーの可視性を設定する

既存の PDF レイヤーの可視性を設定するには、指定されたレイヤーのインデックスまたは名前を通して PdfDocument.getLayers().get() メソッドを使用し、PdfLayer.setVisibility(PdfVisibility value) メソッドを使用してレイヤーの表示または非表示を設定する必要があります。 その具体的な手順は以下の通りです。

  • PdfDocument クラスのオブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッドを使用して PDF ドキュメントを読み込みます。
  • PdfDocument.getLayers().get().setVisibility() メソッドを使用して、指定したレイヤーの可視性を設定します。
  • PdfDocument.saveToFile() メソッドを使用して、結果のドキュメントを保存します。
  • Java
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.graphics.layer.PdfVisibility;

public class setLayerVisibility {
    public static void main(String[] args) {

        //PdfDocumentクラスのオブジェクトを作成する
        PdfDocument pdf = new PdfDocument();

        //PDFドキュメントを読み込む
        pdf.loadFromFile("レイヤーの追加.pdf");

        //最初のレイヤーの可視性をOffに設定する
        pdf.getLayers().get(0).setVisibility(PdfVisibility.Off);

        //ファイルを保存する
        pdf.saveToFile("レイヤーの非表示.pdf", FileFormat.PDF);
        pdf.dispose();
    }
}

Java:PDF レイヤーの追加、非表示、削除

PDF ドキュメントからレイヤーを削除する

Spire.PDF for Java では、PdfDocument.getLayers().removeLayer(java.lang.String name) メソッドを使用して、既存のレイヤーを名前で削除することもできます。 しかし 、 PDF レイヤーの名前は一意でない可能性があり 、 このメソッドは同じ名前の PDF レイヤーをすべて削除しますので注意してください。 具体的な手順は以下のとおりです。

  • PdfDocument クラスのオブジェクトを作成します。
  • PdfDocument.LoadFromFile() メソッドを使用して PDF ドキュメントを読み込みます。
  • PdfDocument.getLayers().removeLayer() メソッドを使用して、名前で指定されたレイヤーを削除します。
  • PdfDocument.saveToFile() メソッドを使用して、結果のドキュメントを保存します。
  • Java
import com.spire.pdf.PdfDocument;

public class deleteLayers {

    public static void main(String[] args) {

        //PdfDocumentクラスのオブジェクトを作成する
        PdfDocument pdf = new PdfDocument();

        //PDFドキュメントを読み込む
        pdf.loadFromFile("レイヤーの追加.pdf");

        //指定したレイヤーをその名前で削除する
        pdf.getLayers().removeLayer("ヘッダー");

        //ファイルを保存する
        pdf.saveToFile("レイヤーの削除.pdf");
        pdf.close();
    }
}

Java:PDF レイヤーの追加、非表示、削除

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

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

スライドサイズは、PowerPoint プレゼンテーションのビジュアルデザインの最も重要な側面の1つです。 スライドサイズはプレゼンテーションの縦横比と寸法を決定し、プレゼンテーションの全体的な外観と雰囲気に大きな影響を与えます。 デフォルトのスライドサイズがビジュアルデザインの要件を満たしていなかったり、プレゼンテーション画面のサイズに合わない場合は、スライドサイズを別のプリセットサイズに変更するか、スライドサイズをカスタマイズする必要があります。 この記事では、Spire.Presentation for Java を使用して、Java プログラムを通じて PowerPoint プレゼンテーションのスライドサイズを変更する方法を紹介します。

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

まず、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>8.7.3</version>
    </dependency>
</dependencies>

スライドサイズをプリセットサイズに変更する

Spire.Presentation for Java には、スライドサイズをプリセットサイズに変更する Presentation.getSlideSize().setType() メソッドがあります。 その手順は以下の通りです。

  • Presentation クラスのオブジェクトを作成します。
  • Presentation.loadFromFile() メソッドを使用して、プレゼンテーションを読み込みます。
  • Presentation.getSlideSize().setType() メソッドを使用して、プレゼンテーションのスライドサイズのタイプを変更します。
  • Presentation.saveToFile() メソッドを使用して、プレゼンテーションを保存します。
  • Java
import com.spire.presentation.FileFormat;
import com.spire.presentation.Presentation;
import com.spire.presentation.SlideSizeType;

public class changeSlideSizePreset {
    public static void main(String[] args) throws Exception {
        //Presentationクラスのオブジェクトを作成する
        Presentation pt = new Presentation();

        //プレゼンテーションを読み込み
        pt.loadFromFile("サンプル.pptx");

        //このプレゼンテーションのスライドサイズのタイプをA4に設定する
        pt.getSlideSize().setType(SlideSizeType.A4);

        //プレゼンテーションを保存する
        pt.saveToFile("A4.pptx", FileFormat.AUTO);
        pt.dispose();
    }
}

Java:PowerPoint のスライドサイズを変更する方法

スライドサイズをカスタムサイズに変更する

スライドサイズをカスタマイズするには、まずスライドサイズの種類をカスタムに変更する必要があります。 次に、Presentation.getSlideSize().setSize() メソッドを使用して、スライドサイズをカスタマイズします。 手順は以下の通りです。

  • Presentation クラスのオブジェクトを作成します。
  • Presentation.loadFromFile() メソッドを使用して、プレゼンテーションを読み込みます。
  • Presentation.getSlideSize().setType() メソッドを使用して、スライドサイズの種類をカスタムに変更します。
  • Presentation.getSlideSize().setSize() メソッドを使用して、スライドサイズをカスタマイズします。
  • Presentation.saveToFile() メソッドを使用して、プレゼンテーションを保存します。
  • Java
import com.spire.presentation.FileFormat;
import com.spire.presentation.Presentation;
import com.spire.presentation.SlideSizeType;

import java.awt.*;

public class changeSlideSizeCustom {
    public static void main(String[] args) throws Exception {
        //Presentationクラスのオブジェクトを作成する
        Presentation pt = new Presentation();

        //プレゼンテーションを読み込み
        pt.loadFromFile("サンプル.pptx");

        //このプレゼンテーションのスライドサイズのタイプをカスタムに設定する
        pt.getSlideSize().setType(SlideSizeType.CUSTOM);

        //スライドサイズを設定する
        pt.getSlideSize().setSize(new Dimension(600, 600));

        //プレゼンテーションを保存する
        pt.saveToFile("カスタム.pptx", FileFormat.AUTO);
        pt.dispose();
    }
}

Java:PowerPoint のスライドサイズを変更する方法

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

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

大量のデータで最高値や最低値を検索することは手間がかかり、エラーが発生する可能性があります。幸いなことに、Excel では条件付き書式を適用して、選択したセル範囲内の上位または下位のランク付けされた値を素早く強調表示することができます。この記事では、Spire.XLS for .NET を使用して Excel でランキングの最高値と最低値を強調表示する方法について説明します。

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

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

PM> Install-Package Spire.XLS

Excel でランキングの最高値と最低値を強調表示する

Spire.XLS for .NET には、上位 N つの値または下位 N つの値を検索する XlsConditionalFormats.AddTopBottomCondition(TopBottomType topBottomType, int rank) メソッドが用意されており、これらの値を背景色で強調表示できます。詳細な手順は次のとおりです。

  • Workbook インスタンスを作成します。
  • Workbook.LoadFromFile() メソッドを使用して Excel ドキュメントを読み込みます。
  • Workbook.Worksheets[sheetIndex] プロパティを使用して、指定されたワークシートをインデックスで取得します。
  • Worksheet.ConditionalFormats.Add() メソッドを使用してワークシートに条件付き書式を追加し、XlsConditionalFormats クラスのオブジェクトを返します。
  • XlsConditionalFormats.AddRange() メソッドを使用して、条件付き書式が適用されるセル範囲を設定します。
  • XlsConditionalFormats.AddTopBottomCondition(TopBottomType topBottomType, int rank) メソッドを使用して、最高値または上位 N つの値を指定する条件を追加します。
  • 次に、IConditionalFormat.BackColor プロパティを使用して、条件に合致するセルに背景色を強調表示します。
  • 最低値または下位 N つの値を指定する条件を追加し、条件に合致するセルに背景色を強調表示します。
  • Workbook.SaveToFile() メソッドを使用して結果文書を保存します。
  • C#
  • VB.NET
using Spire.Xls;
using Spire.Xls.Core;
using Spire.Xls.Core.Spreadsheet.Collections;
using System.Drawing;

namespace HighlightValues
{
    class Program
    {
        static void Main(string[] args)
        {
            {

                //Workbookインスタンスを作成する
                Workbook workbook = new Workbook();

                //Excelドキュメントを読み込む
                workbook.LoadFromFile("sample.xlsx");

                //最初のシートを取得する
                Worksheet sheet = workbook.Worksheets[0];

                //ワークシートに条件付き書式を追加する
                XlsConditionalFormats format = sheet.ConditionalFormats.Add();

                //条件付き書式を適用する範囲を設定する
                format.AddRange(sheet.Range["B3:E9"]);

                //条件付き書式を適用して最高値を強調表示する
                IConditionalFormat condition1 = format.AddTopBottomCondition(TopBottomType.Top, 1);
                condition1.BackColor = Color.LightBlue;

                //条件付き書式を適用して下位2つの値を強調表示する
                IConditionalFormat condition2 = format.AddTopBottomCondition(TopBottomType.Bottom, 2);
                condition2.BackColor = Color.LightGreen;

                //結果文書を保存する
                workbook.SaveToFile("TopBottomValues.xlsx", ExcelVersion.Version2013);

            }
        }
    }
}
Imports Spire.XLS
Imports Spire.XLS.Core
Imports Spire.XLS.Core.Spreadsheet.Collections
Imports System.Drawing

Namespace HighlightValues
    Class Program
        Private Shared Sub Main(ByVal args() As String)

            'Workbookインスタンスを作成する
            Dim workbook As Workbook = New Workbook

            'Excelドキュメントを読み込む
            workbook.LoadFromFile("sample.xlsx")

            '最初のシートを取得する
            Dim sheet As Worksheet = workbook.Worksheets(0)

            'ワークシートに条件付き書式を追加する
            Dim format As XlsConditionalFormats = sheet.ConditionalFormats.Add

            '条件付き書式を適用する範囲を設定する
            format.AddRange(sheet.Range("B3:E9"))

            '条件付き書式を適用して最高値を強調表示する
            Dim condition1 As IConditionalFormat = format.AddTopBottomCondition(TopBottomType.Top, 1)
            condition1.BackColor = Color.LightBlue

            '条件付き書式を適用して下位2つの値を強調表示する
            Dim condition2 As IConditionalFormat = format.AddTopBottomCondition(TopBottomType.Bottom, 2)
            condition2.BackColor = Color.LightGreen

            '結果文書を保存する
            workbook.SaveToFile("TopBottomValues.xlsx", ExcelVersion.Version2013)
        End Sub
    End Class
End Namespace

C#/VB.NET:Excel でランキングの最高値と最低値を強調表示する方法

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

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

Spire.Office 8.8.0のリリースを発表できることを嬉しく思います。このバージョンでは、Spire.PDFは、PDFをWordに変換する際に同じフォント名を保持する機能とPDFのテキスト比較機能をサポートしています。Spire.Presentationでは、文書変換のためのデフォルトフォントリストをリセットするメソッドが追加されました。Spire.XLSでは、DIN A0の用紙サイズの設定やグレースケールの印刷がサポートされています。さらに、多くの既知の問題も修正しました。詳細は以下の内容を読んでください。

このバージョンでは、Spire.Doc,Spire.PDF,Spire.XLS,Spire.Email,Spire.DocViewer, Spire.PDFViewer,Spire.Presentation,Spire.Spreadsheet, Spire.OfficeViewer, Spire.Barcode, Spire.DataExportの最新バージョンが含まれています。

DLL Versions:
  • Spire.Doc.dll v11.7.25
  • Spire.Pdf.dll v9.7.17
  • Spire.XLS.dll v13.8.0
  • Spire.Presentation.dll v8.7.4
  • Spire.Email.dll v6.6.0
  • Spire.DocViewer.Forms.dll v8.7.0
  • Spire.PdfViewer.Forms.dll v7.11.0
  • Spire.PdfViewer.Asp.dll v7.11.0
  • Spire.Spreadsheet.dll v7.4.2
  • Spire.OfficeViewer.Forms.dll v8.8.0
  • Spire.Barcode.dll v7.2.1
  • Spire.DataExport.dll v4.9.0
  • Spire.DataExport.ResourceMgr.dll v2.1.0
ここで Spire.Office 8.8.0をダウンロードする:

このリリースで行われた変更のリストは次のとおりです

Spire.PDF

カテゴリー ID 説明
New feature SPIREPDF-3578 PDFをWordに変換する際に同じフォント名を保持する機能がサポートされています。
PdfDocument doc = new PdfDocument();
//新しいページの追加
PdfPageBase page = doc.Pages.Add();
PdfGrid grid = new PdfGrid();
grid.Columns.Add(1);
PdfGridRow headerRow1 = grid.Headers.Add(1)[0];
//HEADER WITHOUT UNCICODE SUPPORT BUT VALID WORD FONT
headerRow1.Style.Font = new PdfTrueTypeFont(new Font("Arial", 11f, FontStyle.Regular), true);
headerRow1.Cells[0].Value = "Spire.PDF for .NET";
headerRow1.Cells[0].StringFormat = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);
grid.Draw(page, new PointF(0, 10));
//文書をストリームに保存する
MemoryStream stream = new MemoryStream();
doc.SaveToStream(stream, FileFormat.PDF);
stream.Position = 0L;
PdfToWordConverter converter = new PdfToWordConverter(stream);
converter.SaveToDocx(@"out.docx");
New feature SPIREPDF-4092
SPIREPDF-5734
PdfDocument doc = new PdfDocument();
doc.LoadFromFile(@"in.pdf");           
PdfSecurityPolicy securityPolicy = new PdfPasswordSecurityPolicy(userPassword, ownerPassword);
securityPolicy.EncryptMetadata = false;
securityPolicy.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES_128;
securityPolicy.DocumentPrivilege = PdfDocumentPrivilege.AllowAll;
securityPolicy.DocumentPrivilege.AllowPrint = false;
doc.Encrypt(securityPolicy);
doc.SaveToFile(@"out.pdf");
New feature - PDFドキュメントのテキスト比較機能が追加されました。
PdfDocument pdf1 = new PdfDocument(inputFile_1); 
PdfDocument pdf2 = new PdfDocument(inputFile_2); 
PdfComparer compare = new PdfComparer(pdf1, pdf2); 
compare.Options.SetPageRanges(0, pdf1.Pages.Count - 1, 0, pdf2.Pages.Count - 1); 
compare.Compare(outputFile); 
Bug SPIREPDF-6113 PDFをOFDに変換する際のリソース消費が多い問題が修正されました。
Bug SPIREPDF-6129 PDFを画像に変換したり、PDFを印刷する際に、特定のヨーロッパ文字(ü ä ö)の表示が正しくない問題が修正されました。
Bug SPIREPDF-6145 画像を取得する際に、プログラムがヌルポインタ例外を投げる問題が修正されました。
Bug SPIREPDF-6155 非表示署名を追加した後に、「Document Integrity Report」に余分なエラーメッセージが表示される問題が修正されました。
Bug SPIREPDF-6157 テーブルを抽出する際に、プログラムが「System.Exception: Cannot create Graphics object from an image with an indexed pixel format」投げる問題が修正されました。
Bug SPIREPDF-2586 PDFを画像に変換した後、コンテンツが失われる問題が修正されました。
Bug SPIREPDF-6013 PDFファイルを印刷した後、テーブルの枠線が太くなる問題が修正されました。
Bug SPIREPDF-6057 変換後のPDFA3Bファイルを開いた際に、アプリケーションが「cannot extract the embedded font」をスローする問題が修正されました。
Bug SPIREPDF-6072 ファイルに透かしが追加された後に取得されたPDFページ数が正しくなくなった問題がが修正されました。
Bug SPIREPDF-6080 PDFを画像に変換する際のメモリ消費が最適化されました。
Bug SPIREPDF-6086 PDFファイルをロードする際に、アプリケーションが「System.NullReferenceException」をスローする問題が修正されました。
Bug SPIREPDF-6088 XPSファイルをロードする際に、アプリケーションが「System.IndexOutOfRangeException」をスローする問題が修正されました。
Bug SPIREPDF-6093 PDFを画像に変換した後、結果が黒色になる問題が修正されました。
Bug SPIREPDF-6100 PDFを画像に変換する際に、アプリケーションが「System.NullReferenceException」をスローする問題が修正されました。
Bug SPIREPDF-6126 Formフィールドの削除メソッドが機能しない問題が修正されました。

Spire.Presentation

カテゴリー ID 説明
New feature - 文書変換のためのデフォルトフォントリストをリセットする機能が追加されました。
presentation.setDefaultFontName("华文行楷");
New feature - システムにドキュメントで使用されるフォントがインストールされていない場合でも、PDFや画像などの形式を変換する際に、優先フォントの使用を設定する機能が追加されました。
presentation.resetDefaultFontName();
Bug SPIREPPT-2300 PowerPointドキュメントを画像に変換する際にグラフが失われていた問題が修正されました。
Bug SPIREPPT-2302 グラフデータを操作した後、結果ファイルが開けない問題が修正されました。
Bug SPIREPPT-2303 PPTドキュメントを読み込む際に、アプリケーションが「Spire.Presentation.DocumentUnkownFormatException」をスローする問題が修正されました。
Bug SPIREPPT-2304 ハイパーリンクのテキストの色を変更しても効果がない問題を修正しました。

Spire.XLS

カテゴリー ID 説明
New feature SPIREXLS-288 DIN A0の用紙サイズの設定がサポートされています。
sheet.PageSetup.PaperSize    = PaperSizeType.PaperA0; 
New feature SPIREXLS-4725 グレースケールの印刷がサポートされています。
workbook.ConverterSetting.GrayLevelForPrint = true; 
New feature SPIREXLS-4778 XLSXからHTMLへの変換処理時間とメモリ使用量が最適化されています。
Bug SPIREXLS-722 Excelを画像に変換した後、グラフが失われていた問題が修正されました。
Bug SPIREXLS-4012 形状を画像に変換した後、内容が正しくない問題が修正されました。
Bug SPIREXLS-4749 デジタル署名を行う際に、アプリケーションが「System.Security.Cryptography.CryptographicException: 'Invalid algorithm specified'」をスローする問題が修正されました。
Bug SPIREXLS-4768 フォントの置き換えに失敗する問題が修正されました。
Bug SPIREXLS-4772 形状内のテキストを変更した後、スタイルが変わってしまう問題が修正されました。
Bug SPIREXLS-4773 複数のセルに数字形式を設定した後、セルの枠線が変更される問題が修正されました。
Bug SPIREXLS-4785 ExcelをPDFに変換した後、週数の計算が正しくない問題が修正されました。
Bug SPIREXLS-4787 形状を削除した後、PrstGeomShapesコレクションが更新されない問題が修正されました。
Bug SPIREXLS-4788 ExcelをPDFに変換した後、余分な上枠線が表示される問題が修正されました。
Bug SPIREXLS-4793 セルの条件付き書式を取得できない問題が修正されました。
Bug SPIREXLS-4795 ExcelをPDFに変換した後、内容が一致しない問題が修正されました。

Spire.Doc

カテゴリー ID 説明
Bug SPIREDOC-7603 WordをPDFに変換した後、ヘッダーの改行問題が修正されました。
Bug SPIREDOC-9190 WordをPDFに変換した後、ハイパーリンクが機能しない問題が修正されました。
Bug SPIREDOC-9422 WordをPDFに変換した後、コンテンツのレイアウトが正しくない問題が修正されました。
Bug SPIREDOC-9471 目次のページ番号が更新されない問題が修正されました。
Bug SPIREDOC-9463 フィールド値の末尾に余分な「\r」が表示される問題が修正されました。
Bug SPIREDOC-9495 差し込みフィールドの値の更新が正しくない問題が修正されました。
Bug SPIREDOC-9515 HTMLをWordに変換した後、数式の表示が正しくない問題が修正されました。
Bug SPIREDOC-9524 ロードした文書を別名で保存した後、内容が失われる問題が修正されました。
Bug SPIREDOC-9558 Latexの数式を追加した後、不等号の解析が正しくない問題が修正されました。
Bug SPIREDOC-9563 Latexの数式を追加した後、平行記号の解析が正しくない問題が修正されました。
Bug SPIREDOC-9564 Latexの数式を追加した後、ベクトル記号の位置が正しくない問題が修正されました。