C#, izpis v PDF in težave

Vse o programiranju na in za PC

Moderatorji: Kroko, tilz0R

C#, izpis v PDF in težave

OdgovorNapisal/-a S55RU » 20 Feb 2018, 23:13

Pozdravljeni,

V okviru mojega prvega projekta v C# sem spet prišel do težave.
V glavnem, imam program, ki ima eno tabelo (datagridview). Ta tabela je povezana z bazo in vnosnim obrazcem. Ta del sem rešil in deluje. Problem je v naslednjem delu.
Vsebino te tabele in še nekaj drugih stvari bi rad s pritiskom na gumb zapisal v pdf in ga shranil na disk. Uporabljam iTextSharp in vse deluje, problem predstavljajo le slovenske (neangleške) črke.
V bazi in v C# ni problemov, problem je le v pdf-u. Sumim torej, da iTextSharp v osnovi podpira le UTF-8 kodiranje. Sam pa bi rabil UTF-16, ampak mi ga ne uspe nastaviti.
Pozna kdo rešitev ali vsaj kakšen namig proti rešitvi. iTextSharp ni nujen, nujen je le zapis v pdf-u. Tako da sem odprt tudi za druge poti proti cilju.

Še del kode, ki se nanaša na moj problem:
Koda: Izberi vse
//...
using System.IO;
using iTextSharp;
using iTextSharp.text;
using iTextSharp.text.pdf;
//...
private void PDF_btn_Click(object sender, EventArgs e) //klik na gumb sproži shranjevanje
        {
           
            SaveFileDialog dlg = new SaveFileDialog(); //save dialog za izbiro kam shraniti
            dlg.Filter = "PDF Files|*.pdf";
            dlg.FilterIndex = 0;

            string fileName = string.Empty;

            if (dlg.ShowDialog() == DialogResult.OK)
            {
                fileName = dlg.FileName;

                Document doc = new Document(iTextSharp.text.PageSize.LETTER, 10, 10, 42, 35); //kreiraj dokument z dimenzijami
               PdfWriter.GetInstance(doc, new FileStream(fileName, FileMode.Create)); //kreiraj pdf
                doc.Open(); //odpri dokument za pisanje

                //vsebina pdf-a:
                iTextSharp.text.Font pisava1 = FontFactory.GetFont(iTextSharp.text.Font.FontFamily.TIMES_ROMAN.ToString(), 14);
                Paragraph paragraph = new Paragraph("Vsebina, ki se naj izpiše v pdf", pisava1);

                //konec vsebine
                doc.Add(paragraph);

                //tabela iz datagridview
                PdfPTable table = new PdfPTable(dataGridView1.Columns.Count); //iz kje zajema
                //add headers
                for (int j =0; j< dataGridView1.Columns.Count; j++)
                {
                    table.AddCell(new Phrase(dataGridView1.Columns[j].HeaderText)); //doda glavo
                }
                table.HeaderRows = 1; //prva vrsta je header

                //dodaj vsebino
                for (int i =0; i<dataGridView1.Rows.Count; i++)
                {
                    for (int k=0; k< dataGridView1.Columns.Count; k++)
                    {
                        if (dataGridView1[k, i].Value != null)
                        {
                            table.AddCell(new Phrase(dataGridView1[k, i].Value.ToString()));
                        }
                    }
                }
                doc.Add(table);
                //konec tabele
                doc.Close();
            }
        }

Uporabniški avatar
S55RU
 
Prispevkov: 212
Pridružen: 18 Jan 2015, 02:18
Kraj: Posočje
Zahvalil se je: 54 krat
Prejel zahvalo: 23 krat
Uporabnika povabil: s56rga
Število neizkoriščenih povabil: 4

Re: C#, izpis v PDF in težave

OdgovorNapisal/-a kastaneda » 21 Feb 2018, 09:37

Če v googla vpišeš: itextsharp UTF-16
dobiš kar nekaj odgovorov, recimo TEGA.
LP Srečko
Uporabniški avatar
kastaneda
 
Prispevkov: 114
Pridružen: 18 Jan 2015, 10:07
Zahvalil se je: 17 krat
Prejel zahvalo: 16 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 3


Vrni se na Programski jeziki

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost