private System.IO.MemoryStream imposeTypesetPerfectBindCover(System.IO.MemoryStream orig_stream) { System.IO.MemoryStream dest_stream = null; try { dest_stream = new System.IO.MemoryStream(); var docB4 = new iTextSharp.text.Document(new iTextSharp.text.Rectangle(1031.76f, 728.64f)); var writer = iTextSharp.text.pdf.PdfWriter.GetInstance(docB4, dest_stream); docB4.Open(); var reader = new iTextSharp.text.pdf.PdfReader(orig_stream.ToArray()); iTextSharp.text.pdf.PdfContentByte contentbyte; docB4.Add(new iTextSharp.text.Chunk()); iTextSharp.text.pdf.PdfTemplate tCover = writer.GetImportedPage(reader, 1); contentbyte = writer.DirectContent; // default values: in PB briefs, y_coordinate will not vary float x_coordinate = 575.5f, y_coordinate = -76.5f; switch (LengthOfCover) { default: case 48: // GOOD: TESTED 11/16/15 y_coordinate = -88.5f; break; case 49: // STILL AN ESTIMATE y_coordinate = -82.5f; break; case 50: // GOOD: TESTED 11/16/15 y_coordinate = -76.5f; break; case 51: // GOOD: TESTED 11/16/15 y_coordinate = -70.5f; break; } contentbyte.AddTemplate(tCover, x_coordinate, y_coordinate); docB4.Close(); reader.Close(); writer.Close(); } catch (Exception excpt) { System.Diagnostics.Debug.WriteLine(excpt); } return(dest_stream); }
public static bool PerfectBind_LayoutCroppedBrief(string src) { string dest = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(src), "pb on B5.pdf"); try { using (var stream = new System.IO.FileStream(dest, System.IO.FileMode.Create)) { iTextSharp.text.Document docB5 = new iTextSharp.text.Document(new iTextSharp.text.Rectangle(515.76f, 728.4f)); // B5 sized page iTextSharp.text.pdf.PdfWriter writer = iTextSharp.text.pdf.PdfWriter.GetInstance(docB5, stream); docB5.Open(); iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(src); for (int i = 1; i <= reader.NumberOfPages; i++) { if (i != 1) { docB5.NewPage(); } docB5.Add(new iTextSharp.text.Chunk()); iTextSharp.text.pdf.PdfTemplate t = writer.GetImportedPage(reader, i); iTextSharp.text.pdf.PdfContentByte contentbyte = writer.DirectContent; // MEASUREMENTS GOOD: TESTED 11/16/2015 if (i % 2 == 1) { contentbyte.AddTemplate(t, /*42.5f*/ 35.5f, -141.75f); // position for front side of B5 sheet } else if (i % 2 == 0) { contentbyte.AddTemplate(t, /*110f*/ 110f, -141.75f); // position for back side of B5 sheet } else { throw new Exception(); } } docB5.Close(); reader.Close(); } System.IO.File.Delete(src); System.IO.File.Move(dest, src); return(true); } catch (Exception excpt) { System.Diagnostics.Debug.WriteLine(excpt); return(false); } }
private System.IO.MemoryStream imposeTypesetPerfectBindBrief(System.IO.MemoryStream orig_stream) { System.IO.MemoryStream dest_stream = null; try { dest_stream = new System.IO.MemoryStream(); var docB5 = new iTextSharp.text.Document(new iTextSharp.text.Rectangle(515.76f, 728.4f)); var writer = iTextSharp.text.pdf.PdfWriter.GetInstance(docB5, dest_stream); docB5.Open(); var reader = new iTextSharp.text.pdf.PdfReader(orig_stream.ToArray()); for (int i = 1; i <= reader.NumberOfPages; i++) { if (i != 1) { docB5.NewPage(); } docB5.Add(new iTextSharp.text.Chunk()); iTextSharp.text.pdf.PdfTemplate t = writer.GetImportedPage(reader, i); iTextSharp.text.pdf.PdfContentByte contentbyte = writer.DirectContent; // MEASUREMENTS GOOD: TESTED 11/16/2015 if (i % 2 == 1) { contentbyte.AddTemplate(t, /*42.5f*/ 35.5f, -141.75f); // position for front side of B5 sheet } else if (i % 2 == 0) { contentbyte.AddTemplate(t, /*110f*/ 110f, -141.75f); // position for back side of B5 sheet } } docB5.Close(); reader.Close(); writer.Close(); } catch (Exception excpt) { System.Diagnostics.Debug.WriteLine(excpt); } return(dest_stream); }
public static bool SaddleStitch_LayoutCroppedBrief(string src) { string dest = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(src), "ss on B4.pdf"); try { using (var stream = new System.IO.FileStream(dest, System.IO.FileMode.Create)) { iTextSharp.text.Document docB4 = new iTextSharp.text.Document(new iTextSharp.text.Rectangle(1031.76f, 728.64f)); // B4 sized page iTextSharp.text.pdf.PdfWriter writer = iTextSharp.text.pdf.PdfWriter.GetInstance(docB4, stream); docB4.Open(); iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(src); for (int i = 1; i <= reader.NumberOfPages; i += 2) { if (i != 1) { docB4.NewPage(); } docB4.Add(new iTextSharp.text.Chunk()); iTextSharp.text.pdf.PdfTemplate tLeft = writer.GetImportedPage(reader, i); iTextSharp.text.pdf.PdfTemplate tRight = writer.GetImportedPage(reader, i + 1); iTextSharp.text.pdf.PdfContentByte contentbyte = writer.DirectContent; // MEASUREMENTS GOOD: TESTED 11/16/2015; RETESTED TO MATCH 951s, 11/17/2015 // RETESTED AGAIN FOR 951A, where most saddle stitches will print contentbyte.AddTemplate(tLeft, /*113f*/ 108f /*110f*/, -126f); // position for left side of B4 sheet contentbyte.AddTemplate(tRight, /*554.5f*/ /*550.5f*/ 554.5f, -126f); // position for right side of B4 sheet } docB4.Close(); reader.Close(); } System.IO.File.Delete(src); System.IO.File.Move(dest, src); return(true); } catch (Exception excpt) { System.Diagnostics.Debug.WriteLine(excpt); return(false); } }
private System.IO.MemoryStream imposeTypesetSaddleStitchBrief(System.IO.MemoryStream orig_stream) { System.IO.MemoryStream dest_stream = null; try { dest_stream = new System.IO.MemoryStream(); var docB4 = new iTextSharp.text.Document(new iTextSharp.text.Rectangle(1031.76f, 728.64f)); // B4 sized page var writer = iTextSharp.text.pdf.PdfWriter.GetInstance(docB4, dest_stream); docB4.Open(); var reader = new iTextSharp.text.pdf.PdfReader(orig_stream.ToArray()); for (int i = 1; i <= reader.NumberOfPages; i += 2) { if (i != 1) { docB4.NewPage(); } docB4.Add(new iTextSharp.text.Chunk()); iTextSharp.text.pdf.PdfTemplate tLeft = writer.GetImportedPage(reader, i); iTextSharp.text.pdf.PdfTemplate tRight = writer.GetImportedPage(reader, i + 1); iTextSharp.text.pdf.PdfContentByte contentbyte = writer.DirectContent; // MEASUREMENTS GOOD: TESTED 11/16/2015; RETESTED TO MATCH 951s, 11/17/2015 // RETESTED AGAIN FOR 951A, where most saddle stitches will print contentbyte.AddTemplate(tLeft, /*113f*/ 108f /*110f*/, -126f); // position for left side of B4 sheet contentbyte.AddTemplate(tRight, /*554.5f*/ /*550.5f*/ 554.5f, -126f); // position for right side of B4 sheet } docB4.Close(); reader.Close(); } catch (Exception excpt) { System.Diagnostics.Debug.WriteLine(excpt); } return(dest_stream); }
private System.IO.MemoryStream imposeTypesetSaddleStitchCover(System.IO.MemoryStream orig_stream) { System.IO.MemoryStream dest_stream = null; try { dest_stream = new System.IO.MemoryStream(); var docB4 = new iTextSharp.text.Document(new iTextSharp.text.Rectangle(1031.76f, 728.64f)); var writer = iTextSharp.text.pdf.PdfWriter.GetInstance(docB4, dest_stream); docB4.Open(); var reader = new iTextSharp.text.pdf.PdfReader(orig_stream.ToArray()); iTextSharp.text.pdf.PdfContentByte contentbyte; docB4.Add(new iTextSharp.text.Chunk()); iTextSharp.text.pdf.PdfTemplate tCover = writer.GetImportedPage(reader, 1); contentbyte = writer.DirectContent; // default values float x_coordinate = /*550f*/ 554.5f /*17-32 pages*/, y_coordinate = -76.25f /*48 pica*/; switch (reader.NumberOfPages - 1 / 16) { case 0: //(01 - 16) x_coordinate = 551f; // NOT SURE ABOUT THIS ONE break; default: case 1: //(17 - 32) x_coordinate = 554.5f; // GOOD break; case 2: //(33 - 48) x_coordinate = 558f; // TESTED ON 951A, 11/17/2015 break; case 3: //(49 - 64) x_coordinate = /*558f*/ 561.5f; // GOOD break; case 4: //(65 - 80) x_coordinate = /*562f*/ 564f; break; } switch (LengthOfCover) { default: case 48: y_coordinate = -76.25f; // GOOD break; case 49: y_coordinate = -70.5f; break; case 50: y_coordinate = -64.5f; break; case 51: y_coordinate = -58.5f; // GOOD break; } contentbyte.AddTemplate(tCover, x_coordinate, y_coordinate); docB4.Close(); reader.Close(); writer.Close(); } catch (Exception excpt) { System.Diagnostics.Debug.WriteLine(excpt); } return(dest_stream); }
public static bool SaddleStitch_LayoutCroppedCoverAndInsideCover(string src, int?page_count, int?cover_length) { string dest = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(src), "ss Cover on B4.pdf"); try { using (var stream = new System.IO.FileStream(dest, System.IO.FileMode.Create)) { iTextSharp.text.Document docB4 = new iTextSharp.text.Document(new iTextSharp.text.Rectangle(1031.76f, 728.64f)); // B4 sized page iTextSharp.text.pdf.PdfWriter writer = iTextSharp.text.pdf.PdfWriter.GetInstance(docB4, stream); docB4.Open(); iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(src); for (int i = 1; i <= reader.NumberOfPages; i++) { iTextSharp.text.pdf.PdfContentByte contentbyte; if (i == 1) { docB4.Add(new iTextSharp.text.Chunk()); iTextSharp.text.pdf.PdfTemplate tCover = writer.GetImportedPage(reader, i); contentbyte = writer.DirectContent; // basic positioning: need to account for page size in future // default values float x_coordinate = /*550f*/ 554.5f /*17-32 pages*/, y_coordinate = -76.25f /*48 pica*/; switch (page_count - 1 / 16) { case 0: //(01 - 16) x_coordinate = 551f; // NOT SURE ABOUT THIS ONE break; default: case 1: //(17 - 32) x_coordinate = 554.5f; // GOOD break; case 2: //(33 - 48) x_coordinate = 558f; // TESTED ON 951A, 11/17/2015 break; case 3: //(49 - 64) x_coordinate = /*558f*/ 561.5f; // GOOD break; case 4: //(65 - 80) x_coordinate = /*562f*/ 564f; break; } switch (cover_length) { default: case 48: y_coordinate = -76.25f; // GOOD break; case 49: y_coordinate = -70.5f; break; case 50: y_coordinate = -64.5f; break; case 51: y_coordinate = -58.5f; // GOOD break; } contentbyte.AddTemplate(tCover, x_coordinate, y_coordinate); } if (i == 2) { // not set up for multiple inside cover pages yet !!! docB4.NewPage(); docB4.Add(new iTextSharp.text.Chunk()); iTextSharp.text.pdf.PdfTemplate tInsideCover = writer.GetImportedPage(reader, i); contentbyte = writer.DirectContent; contentbyte.AddTemplate(tInsideCover, 113f, -126f); } } docB4.Close(); reader.Close(); writer.Close(); } System.IO.File.Delete(src); System.IO.File.Move(dest, src); return(true); } catch (Exception excpt) { System.Diagnostics.Debug.WriteLine(excpt); return(false); } }
public static bool PerfectBind_LayoutCroppedCoverAndInsideCover(string src, int?cover_length) { string dest = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(src), "pb Cover on B4.pdf"); try { using (var stream = new System.IO.FileStream(dest, System.IO.FileMode.Create)) { iTextSharp.text.Document docB4 = new iTextSharp.text.Document(new iTextSharp.text.Rectangle(1031.76f, 728.64f)); // B4 sized page iTextSharp.text.pdf.PdfWriter writer = iTextSharp.text.pdf.PdfWriter.GetInstance(docB4, stream); docB4.Open(); iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(src); for (int i = 1; i <= reader.NumberOfPages; i++) { iTextSharp.text.pdf.PdfContentByte contentbyte; if (i == 1) { docB4.Add(new iTextSharp.text.Chunk()); iTextSharp.text.pdf.PdfTemplate tCover = writer.GetImportedPage(reader, i); contentbyte = writer.DirectContent; // basic positioning: need to account for page size in future // default values: in PB briefs, y_coordinate will not vary float x_coordinate = 575.5f, y_coordinate = -76.5f; switch (cover_length) { default: case 48: // GOOD: TESTED 11/16/15 y_coordinate = -88.5f; break; case 49: // STILL AN ESTIMATE y_coordinate = -82.5f; break; case 50: // GOOD: TESTED 11/16/15 y_coordinate = -76.5f; break; case 51: // GOOD: TESTED 11/16/15 y_coordinate = -70.5f; break; } contentbyte.AddTemplate(tCover, x_coordinate, y_coordinate); } if (i == 2) { // not set up for multiple inside cover pages yet !!! docB4.NewPage(); docB4.Add(new iTextSharp.text.Chunk()); iTextSharp.text.pdf.PdfTemplate tInsideCover = writer.GetImportedPage(reader, i); contentbyte = writer.DirectContent; contentbyte.AddTemplate(tInsideCover, 113f, -126f); } } docB4.Close(); reader.Close(); writer.Close(); } System.IO.File.Delete(src); System.IO.File.Move(dest, src); return(true); } catch (Exception excpt) { System.Diagnostics.Debug.WriteLine(excpt); return(false); } }