public static bool CropCockleBriefPages(string src) { // works for both saddle stitch and perfect bind string dest = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(src), "brief cropped.pdf"); try { using (var stream = new System.IO.FileStream(dest, System.IO.FileMode.Create)) { iTextSharp.text.pdf.PdfRectangle croppedRectangle = new iTextSharp.text.pdf.PdfRectangle(377f, 189f, 0f, 792f); iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(src); for (int i = 1; i <= reader.NumberOfPages; i++) { iTextSharp.text.pdf.PdfDictionary pageDict = reader.GetPageN(i); pageDict.Put(iTextSharp.text.pdf.PdfName.CROPBOX, croppedRectangle); } var stamper = new iTextSharp.text.pdf.PdfStamper(reader, stream); stamper.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); } }
public static bool CropCoverAndInsideCover(string src, int?coverLength) { // works for both saddle stitch and perfect bind string dest = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(src), "cover cropped.pdf"); try { using (var stream = new System.IO.FileStream(dest, System.IO.FileMode.Create)) { iTextSharp.text.pdf.PdfRectangle croppedRectangleCover; switch (coverLength) { case 48: default: croppedRectangleCover = new iTextSharp.text.pdf.PdfRectangle(356f, 130f, 21f, 741f); break; case 49: croppedRectangleCover = new iTextSharp.text.pdf.PdfRectangle(356f, 120f, 21f, 741f); break; case 50: croppedRectangleCover = new iTextSharp.text.pdf.PdfRectangle(356f, 108f, 21f, 741f); break; case 51: croppedRectangleCover = new iTextSharp.text.pdf.PdfRectangle(356f, 92f, 21f, 741f); break; } iTextSharp.text.pdf.PdfRectangle croppedRectangleInsideCover = new iTextSharp.text.pdf.PdfRectangle(377f, 189f, 0f, 792f); iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(src); for (int i = 1; i <= reader.NumberOfPages; i++) { iTextSharp.text.pdf.PdfDictionary pageDict = reader.GetPageN(i); if (i == 1) { pageDict.Put(iTextSharp.text.pdf.PdfName.CROPBOX, croppedRectangleCover); } else { pageDict.Put(iTextSharp.text.pdf.PdfName.CROPBOX, croppedRectangleInsideCover); } } var stamper = new iTextSharp.text.pdf.PdfStamper(reader, stream); stamper.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 void SaveImages(string InputPDFFile, int specificPageNumber, int degree) { Directory.CreateDirectory(Constents.ROOTPATH + "\\" + Constents.PDFROTATE_FOLDER); var filename = Path.GetFileName(InputPDFFile); string outfile = Constents.ROOTPATH + "\\" + Constents.PDFROTATE_FOLDER + filename; txtOutputPath.Text = outfile; using (FileStream outStream = new FileStream(outfile, FileMode.Create)) { iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(InputPDFFile); iTextSharp.text.pdf.PdfStamper stamper = new iTextSharp.text.pdf.PdfStamper(reader, outStream); int noofPages = reader.NumberOfPages; if (specificPageNumber > 0) //Rotae Specific Page { iTextSharp.text.pdf.PdfDictionary pageDict = reader.GetPageN(specificPageNumber); int desiredRot = degree; // 90 degrees clockwise from what it is now iTextSharp.text.pdf.PdfNumber rotation = pageDict.GetAsNumber(iTextSharp.text.pdf.PdfName.ROTATE); if (rotation != null) { desiredRot += rotation.IntValue; desiredRot %= 360; // must be 0, 90, 180, or 270 } pageDict.Put(iTextSharp.text.pdf.PdfName.ROTATE, new iTextSharp.text.pdf.PdfNumber(desiredRot)); } else // Rotate All Pages { for (int i = 1; i <= noofPages; i++) { iTextSharp.text.pdf.PdfDictionary pageDict = reader.GetPageN(i); int desiredRot = degree; // 90 degrees clockwise from what it is now iTextSharp.text.pdf.PdfNumber rotation = pageDict.GetAsNumber(iTextSharp.text.pdf.PdfName.ROTATE); if (rotation != null) { desiredRot += rotation.IntValue; desiredRot %= 360; // must be 0, 90, 180, or 270 } pageDict.Put(iTextSharp.text.pdf.PdfName.ROTATE, new iTextSharp.text.pdf.PdfNumber(desiredRot)); } } stamper.Close(); } }
private System.IO.MemoryStream cropTypesetBrief(System.IO.MemoryStream orig_stream) { System.IO.MemoryStream dest_stream = null; try { dest_stream = new System.IO.MemoryStream(); var croppedRectangle = new iTextSharp.text.pdf.PdfRectangle(377f, 189f, 0f, 792f); var reader = new iTextSharp.text.pdf.PdfReader(orig_stream.ToArray()); for (int i = 1; i <= reader.NumberOfPages; i++) { iTextSharp.text.pdf.PdfDictionary pageDict = reader.GetPageN(i); pageDict.Put(iTextSharp.text.pdf.PdfName.CROPBOX, croppedRectangle); } var stamper = new iTextSharp.text.pdf.PdfStamper(reader, dest_stream); stamper.Close(); reader.Close(); } catch (Exception excpt) { System.Diagnostics.Debug.WriteLine(excpt); } return(dest_stream); }
public ActionResult OpenNBG(string fname, bool antrag, bool sign, bool do_xtraData) { string err = null; string rawHtml = null; string StartID = null; if (string.IsNullOrWhiteSpace(fname)) { err = "Der übergebene Parameter fname darf n icht leer sein. Starten Sie am besten die Anwendung über die Index.cshtml."; } else { var stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(fname); byte[] BT4allFile = null; if (fname.EndsWith(".xml", StringComparison.CurrentCultureIgnoreCase)) { var biproString = new System.IO.StreamReader(stream).ReadToEnd(); using (var mem = new System.IO.MemoryStream()) { var writer = new Newtonsoft.Json.JsonTextWriter( new System.IO.StreamWriter(mem)); writer.WriteStartObject(); writer.WritePropertyName("module"); writer.WriteValue("YA"); writer.WritePropertyName("data"); writer.WriteValue(biproString); writer.WritePropertyName("callBackURL"); writer.WriteValue("https://nuernberger.de"); writer.WriteEndObject(); writer.Flush(); BT4allFile = mem.GetBuffer().Take((int)mem.Length).ToArray(); } } else if (fname.EndsWith(".txt", StringComparison.CurrentCultureIgnoreCase)) { var biproString = new System.IO.StreamReader(stream).ReadToEnd(); using (var mem = new System.IO.MemoryStream()) { var writer = new Newtonsoft.Json.JsonTextWriter( new System.IO.StreamWriter(mem)); writer.WriteStartObject(); writer.WritePropertyName("module"); writer.WriteValue("LVLebenPrivat_6"); writer.WritePropertyName("data"); writer.WriteValue(biproString); writer.WritePropertyName("callBackURL"); writer.WriteValue("https://nuernberger.de"); writer.WriteEndObject(); writer.Flush(); BT4allFile = mem.GetBuffer().Take((int)mem.Length).ToArray(); } } else //PDF auspacken { iTextSharp.text.pdf.PdfReader reader; try { reader = new iTextSharp.text.pdf.PdfReader(stream); iTextSharp.text.pdf.PdfDictionary root = reader.Catalog; iTextSharp.text.pdf.PdfDictionary names = root.GetAsDict(iTextSharp.text.pdf.PdfName.NAMES); if (names != null) { iTextSharp.text.pdf.PdfDictionary embeddedFiles = names.GetAsDict(iTextSharp.text.pdf.PdfName.EMBEDDEDFILES); if (embeddedFiles != null) { var en = embeddedFiles.Keys.GetEnumerator(); while (en.MoveNext()) { var obj = embeddedFiles.GetAsArray(en.Current as iTextSharp.text.pdf.PdfName); iTextSharp.text.pdf.PdfDictionary fileSpec = obj.GetAsDict(1); iTextSharp.text.pdf.PdfDictionary file = fileSpec.GetAsDict(iTextSharp.text.pdf.PdfName.EF); foreach (iTextSharp.text.pdf.PdfName key in file.Keys) { iTextSharp.text.pdf.PRStream innerstream = (iTextSharp.text.pdf.PRStream) iTextSharp.text.pdf.PdfReader.GetPdfObject(file.GetAsIndirectObject(key)); if (innerstream != null) { BT4allFile = iTextSharp.text.pdf.PdfReader.GetStreamBytes(innerstream); break; } } } } } } catch (Exception ex) { err = ex.ToString(); } } //Request mit Post des Falls und Response mit der ID if (BT4allFile != null) { try { //var Req = System.Net.WebRequest.Create("http://localhost/BT4All/SV/d.svc/m?i=getStartID_SLS_NoSign"); var Req = System.Net.WebRequest.Create("https://test.nuernberger-bt4all.de/BT4All/SV/d.svc/m?i=getStartID_SLS_NoSign"); Req.Method = "POST"; //Req.UseDefaultCredentials = true; var xtraData = new byte[0]; if (do_xtraData) { var xstream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream( "AufrufVergleicher.170728_NuernbergerVorschlag.xml"); var bList = new List <byte>(); int b = xstream.ReadByte(); while (b != -1) { bList.Add((byte)b); b = xstream.ReadByte(); } } Req.ContentLength = BT4allFile.Length + xtraData.Length; if (xtraData.Length > 0) { Req.Headers.Add("xtraDataLen", xtraData.Length.ToString()); } var reqS = Req.GetRequestStream(); reqS.Write(BT4allFile, 0, BT4allFile.Length); reqS.Write(xtraData, 0, xtraData.Length); var resp = Req.GetResponse(); var respStream = resp.GetResponseStream(); var respData = new byte[resp.ContentLength]; respStream.Read(respData, 0, respData.Length); try { using (var mem = new System.IO.MemoryStream(respData)) { Newtonsoft.Json.JsonTextReader jReader = new Newtonsoft.Json.JsonTextReader( new System.IO.StreamReader(mem)); while (jReader.Read()) { var tp = jReader.TokenType; var val = jReader.Value; if (tp == Newtonsoft.Json.JsonToken.PropertyName && (val as string) == "sid") { StartID = jReader.ReadAsString(); break; } } } } catch { using (var strReader = new System.IO.StreamReader(new System.IO.MemoryStream(respData))) { err = "Fehler beim Parsen des JSON Objekts. Serverresponse: "; rawHtml = strReader.ReadToEnd(); } } } catch (Exception ex) { err = ex.ToString(); } } } //=>iframe wird in der Views/Home/INDEX.cshtml aufgebaut ViewBag.err = err; ViewBag.rawHtml = rawHtml; ViewBag.StartID = StartID; ViewBag.antrag = antrag; ViewBag.sign = sign; return(View()); }