// Method 1: Text-based comparison public static ComparisonResult compareByText(String pdfPath1, String pdfPath2) throws IOException String text1 = extractTextFromPDF(pdfPath1); String text2 = extractTextFromPDF(pdfPath2); ComparisonResult result = new ComparisonResult(); result.setTextIdentical(text1.equals(text2)); if (!result.isTextIdentical()) result.setTextDifferences(findTextDifferences(text1, text2)); return result;
private static List<String> findTextDifferences(String text1, String text2) List<String> differences = new ArrayList<>(); String[] lines1 = text1.split("\\r?\\n"); String[] lines2 = text2.split("\\r?\\n"); int maxLines = Math.max(lines1.length, lines2.length); for (int i = 0; i < maxLines; i++) if (i >= lines1.length) differences.add("Line " + (i+1) + ": Missing in first PDF: " + lines2[i]); else if (i >= lines2.length) differences.add("Line " + (i+1) + ": Missing in second PDF: " + lines1[i]); else if (!lines1[i].equals(lines2[i])) differences.add("Line " + (i+1) + " differs:\n PDF1: " + lines1[i] + "\n PDF2: " + lines2[i]); return differences; java by comparison pdf github
steps: - uses: actions/checkout@v3
- name: Build and run PDF comparison run: | mvn compile mvn exec:java -Dexec.mainClass="PDFComparisonApp" \ -Dexec.args="$ github.event.inputs.pdf1 $ github.event.inputs.pdf2 \ --github-token $ secrets.GITHUB_TOKEN \ --repo $ github.repository " String text2 = extractTextFromPDF(pdfPath2)
- name: Set up JDK 11 uses: actions/setup-java@v3 with: java-version: '11' distribution: 'temurin' ComparisonResult result = new ComparisonResult()