コード例 #1
0
        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); }
        }
コード例 #2
0
        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); }
        }
コード例 #3
0
        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();
            }
        }
コード例 #4
0
 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);
 }
コード例 #5
0
        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());
        }