Poi

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;

public class WordToPdfConverter {

    public static void main(String[] args) {
        try {
            // Wordファイル読み込み
            FileInputStream fis = new FileInputStream("input.docx");
            XWPFDocument document = new XWPFDocument(fis);
            
            // PDFファイル作成
            PDDocument pdfDocument = new PDDocument();
            PDPage page = new PDPage();
            pdfDocument.addPage(page);

            // PDFにテキスト書き込み
            PDPageContentStream contentStream = new PDPageContentStream(pdfDocument, page);
            contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);
            
            // WordファイルのテキストをPDFに書き込む（ここでは単純にテキストをコピー）
            for (XWPFParagraph paragraph : document.getParagraphs()) {
                contentStream.beginText();
                contentStream.newLineAtOffset(10, 700); // 位置調整
                contentStream.showText(paragraph.getText());
                contentStream.endText();
            }
            
            contentStream.close();

            // PDFファイル保存
            FileOutputStream fos = new FileOutputStream("output.pdf");
            pdfDocument.save(fos);
            pdfDocument.close();
            fis.close();
            fos.close();
            
            System.out.println("変換が完了しました。");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}



Excel to PDF (using Apache POI):

import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class ExcelToPdfConverter {

    public static void main(String[] args) {
        try {
            // Excelファイル読み込み
            FileInputStream excelFile = new FileInputStream("input.xlsx");
            Workbook workbook = WorkbookFactory.create(excelFile);

            // PDFファイル作成
            FileOutputStream pdfFile = new FileOutputStream("output.pdf");
            workbook.write(pdfFile);

            // ファイルクローズ
            workbook.close();
            excelFile.close();
            pdfFile.close();

            System.out.println("ExcelからPDFへの変換が完了しました。");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

PowerPoint to PDF (using Apache POI):

import org.apache.poi.xslf.usermodel.XMLSlideShow;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class PowerPointToPdfConverter {

    public static void main(String[] args) {
        try {
            // PowerPointファイル読み込み
            FileInputStream pptFile = new FileInputStream("input.pptx");
            XMLSlideShow ppt = new XMLSlideShow(pptFile);

            // PDFファイル作成
            FileOutputStream pdfFile = new FileOutputStream("output.pdf");
            ppt.write(pdfFile);

            // ファイルクローズ
            ppt.close();
            pptFile.close();
            pdfFile.close();

            System.out.println("PowerPointからPDFへの変換が完了しました。");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFFooter;
import org.apache.poi.xwpf.usermodel.XWPFFootnote;
import org.apache.poi.xwpf.usermodel.XWPFHeader;
import org.apache.poi.xwpf.usermodel.XWPFPicture;
import org.apache.poi.xwpf.usermodel.XWPFRelation;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.xwpf.usermodel.XWPFSmartTag;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
import org.apache.poi.xwpf.usermodel.XWPFTableRow;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;

public class WordHeaderExtractor {
    public static void main(String[] args) {
        String filePath = "your_word_file.docx";
        try (FileInputStream fis = new FileInputStream(filePath)) {
            XWPFDocument document = new XWPFDocument(fis);

            List<XWPFHeader> headers = document.getHeaderList();

            int pageNum = 1;
            for (XWPFHeader header : headers) {
                System.out.println("Header on Page " + pageNum + ":");
                System.out.println(getTextFromParagraphs(header.getParagraphs()));
                System.out.println();
                pageNum++;
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static String getTextFromParagraphs(List<XWPFRun> runs) {
        StringBuilder text = new StringBuilder();
        for (XWPFRun run : runs) {
            text.append(run.getText());
        }
        return text.toString();
    }
}


import java.io.FileInputStream;
import org.apache.poi.xwpf.usermodel.*;

public class ReadWordHeadersAndFooters {
    public static void main(String[] args) {
        try {
            FileInputStream fis = new FileInputStream("YourWordFile.docx");
            XWPFDocument document = new XWPFDocument(fis);

            // 各セクションのページ数取得
            int sectionCount = document.getDocument().getSections().size();

            // 各セクションのヘッダーおよびフッターを出力
            for (int sectionIndex = 0; sectionIndex < sectionCount; sectionIndex++) {
                XWPFHeaderFooterPolicy headerFooterPolicy = document.getHeaderFooterPolicy();
                XWPFHeader header = headerFooterPolicy.getHeader(sectionIndex);
                XWPFFooter footer = headerFooterPolicy.getFooter(sectionIndex);

                int pageCountInSection = headerFooterPolicy.getNumOfHeaderFooterInSection(sectionIndex);

                for (int pageIndex = 0; pageIndex < pageCountInSection; pageIndex++) {
                    System.out.println("Section " + (sectionIndex + 1) + ", Page " + (pageIndex + 1) + " Header:");
                    if (header != null) {
                        System.out.println(header.getText());
                    }

                    System.out.println("Section " + (sectionIndex + 1) + ", Page " + (pageIndex + 1) + " Footer:");
                    if (footer != null) {
                        System.out.println(footer.getText());
                    }

                    System.out.println("--------");
                }
            }

            fis.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}


import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.PDType1Font;

public class TextToPDFConverter {

    public static void main(String[] args) {
        try {
            // テキストファイルのパス
            String textFilePath = "input.txt";

            // PDFドキュメントを作成します
            PDDocument document = new PDDocument();
            
            // 新しいページを作成します
            PDPage page = new PDPage();
            document.addPage(page);

            // ページにコンテンツを追加します
            PDPageContentStream contentStream = new PDPageContentStream(document, page);

            // テキストファイルからテキストを読み込んでPDFに書き込みます
            try (BufferedReader reader = new BufferedReader(new FileReader(textFilePath))) {
                String line;
                float yPosition = 700; // ページ上のテキストのY座標
                while ((line = reader.readLine()) != null) {
                    contentStream.beginText();
                    contentStream.setFont(PDType1Font.HELVETICA, 12);
                    contentStream.newLineAtOffset(100, yPosition);
                    contentStream.showText(line);
                    contentStream.endText();
                    yPosition -= 12; // テキストの高さ分を減算
                }
            }

            // ページを閉じます
            contentStream.close();

            // PDFドキュメントを保存します
            document.save(new File("output.pdf"));

            // ドキュメントを閉じます
            document.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}