Hi,
I need to convert file from excel to PDF using Aspose.Cells.
I have a large Excel and I need to convert PDF;
- A1 to Q120 from worksheet1
- C3 to W120 from worksheet1
- A1 to Q120 from worksheet2
Here is my signature;
public static ConvertDocumentResponse excel2pdf(ConvertDocumentRequest request)
Here is my ConvertDocumentRequest ;
private byte[] inputData;
private String username;
private String token;
private List printArea;{ worksheetId, printAreaStart, printAreaEnd;}
private int outputType;
private int savingType;
And my response will be byte[] of PDF file.
And, I use;
Workbook workbook = new Workbook(inStream);
WorksheetCollection worksheets = workbook.getWorksheets();
for (PrintArea printArea : request.getPrintArea()) {
Worksheet ws= worksheets.get(printArea.getWorksheetId());
PageSetup pageSetup = ws.getPageSetup();
String location = printArea.getPrintAreaStart().concat(":").concat(printArea.getPrintAreaEnd());
pageSetup.setPrintArea(location);
pageSetup.setFitToPagesWide(1);
if(request.getOutputType()==1){
//workbook.save(outStream, SaveFormat.PDF);
workbook.save("V:\\Ă–MER\\DocConverter\\deneme\\deneme28.pdf",SaveFormat.PDF);
}
}
But It doesnt work.
Can you help me ?
@aomerr28,
Thanks for the sample code segment and details.
I guess the problem might be with your logic/code or input data for different print areas, so you should fix it by yourself on your end. I tested your scenario/case with a simple Excel file (attached) using the following sample code and it works fine. The output PDFs (attached) are correct with relevant data only:
e.g
Sample code:
Workbook workbook = new Workbook("Bk_printareas1.xlsx");
WorksheetCollection worksheets = workbook.getWorksheets();
//A1 to Q120 from worksheet1
Worksheet ws= worksheets.get(0);
PageSetup pageSetup = ws.getPageSetup();
pageSetup.setPrintArea("A1:Q120");
pageSetup.setFitToPagesWide(1);
//Invisible the second sheet.
worksheets.get(1).setVisible(false);
workbook.save("out1.pdf");
//C3 to W120 from worksheet1
pageSetup.setPrintArea("C3:W120");
pageSetup.setFitToPagesWide(1);
workbook.save("out2.pdf");
//A1 to Q120 from worksheet2
worksheets.get(1).setVisible(true);
Worksheet ws1= worksheets.get(1);
PageSetup pageSetup1 = ws1.getPageSetup();
pageSetup1.setPrintArea("A1:Q120");
pageSetup1.setFitToPagesWide(1);
//Invisible first sheet.
worksheets.get(0).setVisible(false);
workbook.save("out3.pdf");
Hope, this helps a bit.
file1.zip (14.6 KB)
out1.pdf (65.8 KB)
out2.pdf (76.3 KB)
out3.pdf (66.0 KB)