Created
August 27, 2014 21:55
-
-
Save marti1125/303b0a531af111029c8e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); | |
// we create a reader for a certain document | |
PdfReader reader = new PdfReader(pdfYExcelStream); | |
Rectangle psize = reader.getPageSize(1); | |
System.out.println("tamaño pdf original "+psize); | |
// we retrieve the total number of pages and the page size | |
//int total = reader.getNumberOfPages(); | |
/*Rectangle pageSize = reader.getPageSize(1); | |
Rectangle newSize = new Rectangle(pageSize.getWidth() / 2, | |
pageSize.getHeight());*/ | |
// step 1: creation of a document-object | |
Document document = new Document(PageSize.A4); //new Document(newSize, 0, 0, 0, 0); | |
reader.getPageContent(1); | |
//document.setPageSize(PageSize.A4.rotate()); | |
// step 2: we create a writer that listens to the document | |
PdfWriter writer = PdfWriter.getInstance(document, outputStream); | |
writer.addPageDictEntry(PdfName.ROTATE, PdfPage.LANDSCAPE); | |
//writer.setPageEvent(new RotateEvent()); | |
// step 3: we open the document | |
document.open(); | |
// step 4: adding the content | |
PdfContentByte cb = writer.getDirectContent(); | |
PdfImportedPage page = writer.getImportedPage(reader, 1); | |
System.out.println("direccion "+writer.getPageDictEntries()); | |
//System.out.println("tamaño general: "+document.getPageSize().getHeight()); | |
/*document.newPage(); | |
cb.addTemplate(page, 0, 0);*/ | |
int cantidadPaginas = Math.round( psize.getWidth() / 800 ); | |
System.out.println("chancho!! "+page.getWidth()); | |
System.out.println("cantidad paginas " + cantidadPaginas); | |
System.out.println("hancho original!! "+psize.getWidth()); | |
//System.out.println("a4 original:"+psize.getWidth()); | |
//System.out.println("a4 new:"+document.getPageSize().getWidth()); | |
//System.out.println("paginas---->"+document.getPageSize().getWidth()/psize.getWidth()); | |
//System.out.println("paginas222---->"+psize.getWidth() / document.getPageSize().getWidth()); | |
/*for(cantidadPaginas = 0; document.getPageSize().getHeight() < psize.getWidth();cantidadPaginas++){ | |
System.out.println("paginas..."+cantidadPaginas); | |
}*/ | |
//document.setPageSize(PageSize.A4.rotate()); | |
/*document.newPage(); | |
cb.addTemplate(page, 0, -100); | |
document.newPage(); | |
cb.addTemplate(page, 0, -200);*/ | |
//System.out.println("hacho del original" + psize.getWidth()); | |
//document.newPage(); | |
//cb.addTemplate(page, 1, 0, 0, 1, 0, 0); | |
document.setPageSize(PageSize.A4.rotate()); //-document.getPageSize().getWidth() | |
document.newPage(); | |
AffineTransform afinit = new AffineTransform(0, -1, 1, 0, -32800, 600); // equivale a 11 paginas mas! | |
cb.addTemplate(page,afinit); | |
double total = 0d; | |
total = psize.getWidth(); | |
///////////////////////////////////////// | |
int totalAnchoDePaginas = 800*cantidadPaginas; | |
System.out.println("total del ancho de las paginas!!" + totalAnchoDePaginas); | |
//int anchoPagina = totalAnchoDePaginas; | |
int anchoPorPagina = totalAnchoDePaginas + 800; | |
int tt = -32800 - 800; | |
for(int p = 1; p <=totalAnchoDePaginas; p++){ | |
tt = tt + 800; | |
System.out.println(tt); | |
document.setPageSize(PageSize.A4.rotate()); | |
document.newPage(); | |
AffineTransform af = new AffineTransform(0, -1, 1, 0, tt, 600); | |
cb.addTemplate(page, af); | |
if(tt == 0){ | |
break; | |
} | |
//total = total - document.getPageSize().getWidth(); | |
//total = total2 - total; | |
//System.out.println("total-->"+total); | |
/*document.setPageSize(PageSize.A4.rotate()); | |
document.newPage(); | |
//document.setMarginMirroring(true); | |
document.setMargins(0, 0, 0, 0); | |
AffineTransform af = new AffineTransform(0, -1, 1, 0, -(int)total, 600); | |
cb.addTemplate(page, af);*/ | |
} | |
//PdfImportedPage lastpage = writer.getImportedPage(reader,cantidadPaginas); | |
//lastpage. | |
//document.setPageSize(PageSize.A4.rotate()); | |
//document.newPage(); | |
//cb.addTemplate(page,0,0,1,-1,10,10); | |
//cb.addTemplate(page, 0, 0); | |
//double A_4 = document.getPageSize().getWidth(); | |
//double w_inicial = -psize.getWidth(); | |
//double total = 0d; | |
/*for(int p = 1; p <cantidadPaginas; p++){ | |
total = w_inicial - document.getPageSize().getWidth(); | |
System.out.println(total); | |
document.newPage(); | |
cb.addTemplate(page, 0, (int)total); | |
}*/ | |
//document.newPage(); | |
//cb.addTemplate(page, -PageSize.A4.getWidth(), 0); | |
//document.newPage(); | |
// cb.AddTemplate(page, -PageSize.A4.Width, 0); | |
//float offsetX, offsetY; | |
//int p; | |
// int rot; | |
// PdfDictionary pageDict = new PdfDictionary(); | |
/*for (int i = 0; i < total; i++) { | |
p = i + 1; | |
pageSize = reader.getPageSize(p); | |
newSize = new Rectangle(pageSize.getWidth(), | |
pageSize.getHeight() / 2); | |
document.newPage(); | |
offsetX = 0; | |
offsetY = -newSize.getHeight() + 1; | |
page = writer.getImportedPage(reader, p); | |
cb.addTemplate(page, 1, 0, 0, 1, offsetX, offsetY); | |
/*document.newPage(); | |
offsetX = 0; | |
offsetY = 0; | |
page = writer.getImportedPage(reader, p); | |
cb.addTemplate(page, 1, 0, 0, 1, offsetX, offsetY); | |
document.newPage(); | |
offsetX = 0; | |
offsetY = 60; | |
page = writer.getImportedPage(reader, p); | |
cb.addTemplate(page, 1, 0, 0, 1, offsetX, offsetY);*/ | |
// pageDict.put(PdfName.ROTATE, new | |
// PdfNumber(reader.getPageRotation(p) + 180)); | |
//} | |
document.close(); | |
writer.flush(); | |
writer.close(); | |
outputStream.close(); | |
ByteArrayOutputStream out = new ByteArrayOutputStream(); | |
out.flush(); | |
out.write(outputStream.toByteArray()); | |
out.close(); | |
// de output a input!! | |
InputStream is = new ByteArrayInputStream(out.toByteArray()); | |
renderBinary(is, "ReporteDeDistribucionClasesPorHoras.pdf", | |
"application/pdf", true); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment