mirror of
				https://github.com/Frooodle/Stirling-PDF.git
				synced 2025-11-01 01:21:18 +01:00 
			
		
		
		
	possible fixes for overlay
This commit is contained in:
		
							parent
							
								
									39345bb6bb
								
							
						
					
					
						commit
						5774a22b64
					
				@ -8,7 +8,7 @@ plugins {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
group = 'stirling.software'
 | 
					group = 'stirling.software'
 | 
				
			||||||
version = '0.17.0'
 | 
					version = '0.17.1'
 | 
				
			||||||
sourceCompatibility = '17'
 | 
					sourceCompatibility = '17'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
repositories {
 | 
					repositories {
 | 
				
			||||||
 | 
				
			|||||||
@ -55,8 +55,9 @@ public class PdfOverlayController {
 | 
				
			|||||||
	            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
 | 
						            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
 | 
				
			||||||
	            overlay.overlay(overlayGuide).save(outputStream);
 | 
						            overlay.overlay(overlayGuide).save(outputStream);
 | 
				
			||||||
	            byte[] data = outputStream.toByteArray();
 | 
						            byte[] data = outputStream.toByteArray();
 | 
				
			||||||
 | 
						            String outputFilename = baseFile.getOriginalFilename().replaceFirst("[.][^.]+$", "") + "_overlayed.pdf";  // Remove file extension and append .pdf
 | 
				
			||||||
		        
 | 
							        
 | 
				
			||||||
	            return WebResponseUtils.bytesToWebResponse(data, "overlaid.pdf", MediaType.APPLICATION_PDF);
 | 
						            return WebResponseUtils.bytesToWebResponse(data, outputFilename, MediaType.APPLICATION_PDF);
 | 
				
			||||||
	        } 
 | 
						        } 
 | 
				
			||||||
        } finally {
 | 
					        } finally {
 | 
				
			||||||
            for (File overlayPdfFile : overlayPdfFiles) {
 | 
					            for (File overlayPdfFile : overlayPdfFiles) {
 | 
				
			||||||
@ -84,17 +85,20 @@ public class PdfOverlayController {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private void sequentialOverlay(Map<Integer, String> overlayGuide, File[] overlayFiles, int basePageCount) throws IOException {
 | 
					    private void sequentialOverlay(Map<Integer, String> overlayGuide, File[] overlayFiles, int basePageCount) throws IOException {
 | 
				
			||||||
        int currentPage = 1;
 | 
					        if (overlayFiles.length != 1 || basePageCount != PDDocument.load(overlayFiles[0]).getNumberOfPages()) {
 | 
				
			||||||
        for (File overlayFile : overlayFiles) {
 | 
					            throw new IllegalArgumentException("Overlay file count and base page count must match for sequential overlay.");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        File overlayFile = overlayFiles[0];
 | 
				
			||||||
        try (PDDocument overlayPdf = PDDocument.load(overlayFile)) {
 | 
					        try (PDDocument overlayPdf = PDDocument.load(overlayFile)) {
 | 
				
			||||||
                for (int i = 0; i < overlayPdf.getNumberOfPages(); i++) {
 | 
					            for (int i = 1; i <= overlayPdf.getNumberOfPages(); i++) {
 | 
				
			||||||
                    if (currentPage > basePageCount) break;
 | 
					                if (i > basePageCount) break;
 | 
				
			||||||
                    overlayGuide.put(currentPage++, overlayFile.getAbsolutePath());
 | 
					                overlayGuide.put(i, overlayFile.getAbsolutePath());
 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private void interleavedOverlay(Map<Integer, String> overlayGuide, File[] overlayFiles, int basePageCount) throws IOException {
 | 
					    private void interleavedOverlay(Map<Integer, String> overlayGuide, File[] overlayFiles, int basePageCount) throws IOException {
 | 
				
			||||||
        for (int i = 0; i < basePageCount; i++) {
 | 
					        for (int i = 0; i < basePageCount; i++) {
 | 
				
			||||||
        	File overlayFile = overlayFiles[i % overlayFiles.length];
 | 
					        	File overlayFile = overlayFiles[i % overlayFiles.length];
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user