Beispiel #1
0
        public PrintSheet()
        {
            //Create the new document
            document = new PdfDocument();
            document.PageSettings.Orientation = PdfPageOrientation.Landscape;
            document.PageSettings.Margins.All = 0;

            //Load the existing documents
            templatedDocument = new PdfLoadedDocument(@"resources\PrintSheetTemplate.pdf");

            //Create a template from the first document
            PdfLoadedPage loadedPage = templatedDocument.Pages[0] as PdfLoadedPage;

            template = loadedPage.CreateTemplate();
        }
Beispiel #2
0
        private void luoLaskuBtn_Click(object sender, EventArgs e)
        {
            bool voikoLuoda = true;
            //Luodaan asiakas ja laitetaan asiakkaalle tiedot
            Asiakas asiakas = new Asiakas();

            asiakas.Sukunimi = sukunimiCBox.Text;
            asiakas.Etunimi  = etunimiCBox.Text;
            asiakas          = handler.HaeAsiakasNimellä(asiakas);

            //Luodaan yritys ja haetaan sille tiedot
            Yritys yritys = new Yritys();

            yritys = handler.HaeYritys(id);


            DateTime dateAndTime = DateTime.Now;
            DateTime eräpäivä    = dateAndTime.AddDays(14);

            //Luodaan lasku ja laitetaan laskulle tiedot
            Lasku lasku = new Lasku();
            int   laskunID;

            lasku.Päivämäärä = dateAndTime;
            lasku.Eräpäivä   = eräpäivä;
            lasku.AsiakasID  = asiakas.Id;
            try
            {
                lasku.Laskutuskausi = laskutusCbox.SelectedItem.ToString();
            }
            catch (Exception)
            {
                MessageBox.Show("Et valinnut laskutuskautta", "!Huom");
                voikoLuoda = false;
            }

            if (voikoLuoda == true)
            {
                laskunID = handler.TallennaLasku(lasku);

                string viitenumero;
                viitenumero = Viitenumero(asiakas, laskunID);

                // luodaan pdf tiedosto ja sille olennaiset ominaisuudet
                PdfLoadedDocument loadedDocument = new PdfLoadedDocument(Properties.Resources.laskupohja);
                PdfLoadedForm     loadedForm     = loadedDocument.Form;
                PdfLoadedPage     loadedPage     = loadedDocument.Pages[0] as PdfLoadedPage;
                PdfTemplate       template       = loadedPage.CreateTemplate();
                PdfDocument       document       = new PdfDocument();
                document.PageSettings.SetMargins(2);
                PdfPage     page     = document.Pages.Add();
                PdfGraphics graphics = page.Graphics;
                graphics.DrawPdfTemplate(template, PointF.Empty, new SizeF(page.Size.Width, page.Size.Height));
                PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 20);

                float veroYhteensä, määrä, verotonHinta, hinta, yhteensä;

                float.TryParse(hintaTbox.Text, out hinta);
                float.TryParse(määräTbox.Text, out määrä);
                verotonHinta = hinta * määrä;
                veroYhteensä = verotonHinta * 1.24f - verotonHinta;
                yhteensä     = verotonHinta + veroYhteensä;

                //Viedään tietoa dokumenttiin
                (loadedForm.Fields[0] as PdfLoadedTextBoxField).Text  = dateAndTime.ToString("dd/MM/yyyy");
                (loadedForm.Fields[1] as PdfLoadedTextBoxField).Text  = "7%";                            //Viivästyskorko
                (loadedForm.Fields[2] as PdfLoadedTextBoxField).Text  = laskunID.ToString();             //Laskunumero
                (loadedForm.Fields[3] as PdfLoadedTextBoxField).Text  = asiakas.YTunnus;                 // Asiakkaan Y-Tunnus
                (loadedForm.Fields[4] as PdfLoadedTextBoxField).Text  = maksuehtoTbox.Text;              // Maksuehto
                (loadedForm.Fields[5] as PdfLoadedTextBoxField).Text  = "";                              // Viitteemme
                (loadedForm.Fields[6] as PdfLoadedTextBoxField).Text  = eräpäivä.ToString("dd/MM/yyyy"); // Eräpäivä
                (loadedForm.Fields[7] as PdfLoadedTextBoxField).Text  = "";                              // Viittenne
                (loadedForm.Fields[8] as PdfLoadedTextBoxField).Text  = toimitusehtoTbox.Text;           // Toimitusehto
                (loadedForm.Fields[63] as PdfLoadedTextBoxField).Text = verotonHinta.ToString();         // Veroton yhteensä
                (loadedForm.Fields[64] as PdfLoadedTextBoxField).Text = veroYhteensä.ToString();         // ALV yhteensä
                (loadedForm.Fields[65] as PdfLoadedTextBoxField).Text = yhteensä.ToString();             // Verollinen yhteensä
                (loadedForm.Fields[70] as PdfLoadedTextBoxField).Text = yhteensä.ToString();             // Yhteensä
                (loadedForm.Fields[71] as PdfLoadedTextBoxField).Text = EtunimiLbl.Text + " "
                                                                        + sukunimiLbl.Text + "\n" + osoiteLbl.Text + "\n" + postinumeroLbl.Text + " "
                                                                        + postitoimipaikkaLbl.Text;                      // Asiakkaan tiedot
                (loadedForm.Fields[68] as PdfLoadedTextBoxField).Text = eräpäivä.ToString("dd/MM/yyyy");                 // Eräpäivä
                (loadedForm.Fields[75] as PdfLoadedTextBoxField).Text = yritys.Nimi + "\n" + yritys.Osoite + "\n"        // Laskun lähettäjän tiedot
                                                                        + yritys.Postinumero + " " + yritys.Postiosoite; // Laskun lähettäjän tiedot
                (loadedForm.Fields[66] as PdfLoadedTextBoxField).Text = yritys.Iban;                                     // IBAN
                (loadedForm.Fields[67] as PdfLoadedTextBoxField).Text = yritys.Bicswift;                                 // BIC/SWIFT = 67
                (loadedForm.Fields[69] as PdfLoadedTextBoxField).Text = viitenumero;                                     // Viitenumero = 69
                (loadedForm.Fields[9] as PdfLoadedTextBoxField).Text  = nimikeTbox.Text;                                 // Nimike
                (loadedForm.Fields[10] as PdfLoadedTextBoxField).Text = määräTbox.Text;                                  // Määrä
                (loadedForm.Fields[11] as PdfLoadedTextBoxField).Text = "kpl";                                           // Yks.
                (loadedForm.Fields[12] as PdfLoadedTextBoxField).Text = hintaTbox.Text;                                  // hinta
                (loadedForm.Fields[13] as PdfLoadedTextBoxField).Text = "24%";                                           // Alv %
                (loadedForm.Fields[14] as PdfLoadedTextBoxField).Text = yhteensä.ToString();                             // Verollinen yhteensä

                //Tällä luupilla voi katsoa missä kohdassa mikäkin field on.
                //for (int i = 0; i < 76; i++)
                //{
                //    (loadedForm.Fields[i] as PdfLoadedTextBoxField).Text = i.ToString();
                //}

                // tallenetaan dokumentti
                loadedDocument.Save("Lasku.pdf");
                document.Save("UusiLasku.pdf");
                loadedDocument.Close(true);
                document.Close(true);
                Process.Start("Lasku.pdf");

                // Tarkistetaan onko laskun tiedot saatu tallennettua
                if (laskunID != 0)
                {
                    MessageBox.Show("Laskun tiedot tallennettiin tietokantaan", "Huom");
                }
                else
                {
                    MessageBox.Show("Laskun tietoja ei saatu tallennettua", "Huom");
                }
            }
        }
Beispiel #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="filePath"></param>
        /// <param name="bodyHtml"></param>
        /// <param name="headerHtml"></param>
        /// <param name="footerHtml"></param>
        /// <param name="headerHeight"></param>
        /// <param name="footerHeight"></param>
        /// <param name="firstPageHeader"></param>
        /// <returns></returns>
        public static string HtmlToPdf(string filePath, string bodyHtml, string headerHtml, string footerHtml, int headerHeight = 96, int footerHeight = 96, bool firstPageHeader = false)
        {
            string css  = "";
            string html = "";

            using (System.IO.StreamReader r = new System.IO.StreamReader(System.Web.Hosting.HostingEnvironment.MapPath(cssPath)))
            {
                css = r.ReadToEnd();
            }
            using (System.IO.StreamReader r = new System.IO.StreamReader(System.Web.Hosting.HostingEnvironment.MapPath(emptyLayoutPath)))
            {
                html = r.ReadToEnd().Replace("[[CSS]]", css);
            }

            PdfDocument document = new PdfDocument();

            document.PageSettings.Size = PdfPageSize.A4;
            document.PageSettings.SetMargins(0);


            //Initialize HTML to PDF converter
            var htmlConverter = new HtmlToPdfConverter(HtmlRenderingEngine.WebKit);
            //Create new settings
            var setting   = CreateConverterSetting();
            var pdfHeader = HeaderHTMLtoPDF(html.Replace("[[HTML]]", headerHtml), headerHeight);
            var pdfFooter = FooterHTMLtoPDF(html.Replace("[[HTML]]", footerHtml), footerHeight);

            setting.PdfPageSize = new SizeF(PdfPageSize.A4.Width, PdfPageSize.A4.Height - pdfHeader.Height - pdfFooter.Height);

            htmlConverter.ConverterSettings = setting;
            //Convert to PDF
            var         body    = html.Replace("[[HTML]]", bodyHtml);
            PdfDocument docBody = htmlConverter.Convert(body, string.Empty);
            Stream      stream  = new MemoryStream();

            docBody.Save(stream);
            docBody.Close();
            PdfLoadedDocument pdfLoadedDocument = new PdfLoadedDocument(stream);

            for (int i = 0; i < pdfLoadedDocument.Pages.Count; i++)
            {
                PdfLoadedPage loadedPage = pdfLoadedDocument.Pages[i] as PdfLoadedPage;
                PdfTemplate   template   = loadedPage.CreateTemplate();
                PdfSection    section    = document.Sections.Add();
                PdfPage       page       = section.Pages.Add();
                PdfGraphics   graphics   = page.Graphics;
                if (i == 0)
                {
                    section.Template.Top    = pdfHeader;
                    section.Template.Bottom = FooterHTMLtoPDF(html.Replace("[[HTML]]", footerHtml?.Replace("[[Page]]", "1")?.Replace("[[TotalPage]]", pdfLoadedDocument.Pages.Count.ToString())), footerHeight);
                }
                else
                {
                    if (firstPageHeader)
                    {
                        section.Template.Top = HeaderHTMLtoPDF(html.Replace("[[HTML]]", string.Empty), headerHeight);
                    }
                    else
                    {
                        section.Template.Top = HeaderHTMLtoPDF(html.Replace("[[HTML]]", headerHtml), headerHeight);
                    }
                    section.Template.Bottom = FooterHTMLtoPDF(html.Replace("[[HTML]]", footerHtml?.Replace("[[Page]]", (i + 1).ToString())?.Replace("[[TotalPage]]", pdfLoadedDocument.Pages.Count.ToString())), footerHeight);
                }
                graphics.DrawPdfTemplate(template, new PointF(0, pdfHeader.Height), new SizeF(page.Size.Width, page.Size.Height - pdfHeader.Height - pdfFooter.Height));
            }

            //Save the document
            document.Save(filePath);
            document.Close();
            stream.Dispose();
            filePath = filePath.Replace("~", "");
            return(filePath);
        }