Witam,

używam biblioteki DocumentFormat.OpenXml.Wordprocessing do generowania dokumentu Microsoft Word.

Wszystko działa dobrze tylko gdy ustalę rodzaj czcionki i wielkość to formatowane są wszystkie znaki z wyjątkiem polskich.

Jak można to naprawić?

Dodatkowo co zrobić aby tekst przesunąć w prawo zamiast używać:
(żeby nowa linia nie zaczynała się całkowicie od lewej strony)

Kopiuj
run_paragraphCient.Append(new WordOffice.TabChar());

tak wygląda kod:

Kopiuj
using (WordprocessingDocument myDoc = WordprocessingDocument.Create(generatedDocument, WordprocessingDocumentType.MacroEnabledDocument))
{
    MainDocumentPart mainPart = myDoc.AddMainDocumentPart();

    mainPart.Document = new WordOffice.Document();
    HtmlConverter converter = new HtmlConverter(mainPart);

    WordOffice.Body body = new WordOffice.Body();
    WordOffice.PageMargin pageMargins = new WordOffice.PageMargin();
    pageMargins.Left = Convert.ToUInt32(10 * 56.7);
    pageMargins.Right = Convert.ToUInt32(10 * 56.7);
    //pageMargins.Bottom = Convert.ToUInt32(10 * 56.7);
    pageMargins.Top = Convert.ToInt32(10 * 56.7);

    WordOffice.SectionProperties sectionProps = new WordOffice.SectionProperties();
    sectionProps.Append(pageMargins);
    body.Append(sectionProps);

                   
    string tmp = "<img src=\"/pliki/template/get/gfx/inne/logo2.png\" />";

    WordOffice.SectionProperties SecPro = new WordOffice.SectionProperties();
    WordOffice.PageSize PSize = new WordOffice.PageSize();
    PSize.Width = Convert.ToUInt32(220 * 56.7);
    PSize.Height = Convert.ToUInt32(160 * 56.7);
    SecPro.Append(PSize);
    body.Append(SecPro);

    WordOffice.Paragraph paragraph = new WordOffice.Paragraph();
    WordOffice.Run run_paragraph = new WordOffice.Run();
    WordOffice.Run run_paragraph2 = new WordOffice.Run();
    WordOffice.Run run_paragraph3 = new WordOffice.Run();

    WordOffice.Text t = new WordOffice.Text();

    WordOffice.Bold bold = new WordOffice.Bold();
    bold.Val = OnOffValue.FromBoolean(true);
    WordOffice.RunProperties runProperties = run_paragraph.AppendChild(new WordOffice.RunProperties());
    runProperties.Append(bold);

    WordOffice.ParagraphProperties paragraphPropImage = new WordOffice.ParagraphProperties();
    paragraphPropImage.Append(new WordOffice.Justification() { Val = WordOffice.JustificationValues.Center });


    WordOffice.Paragraph paragraphImage = new WordOffice.Paragraph();

    WordOffice.Run runImage = new WordOffice.Run();

    runImage.Append(converter.Parse(tmp));
    paragraphImage.Append(paragraphPropImage);
    paragraphImage.Append(runImage);


    paragraph.Append(run_paragraph);
    paragraph.Append(run_paragraph2);

    WordOffice.Paragraph paragraphClient = new WordOffice.Paragraph();
    WordOffice.Run run_paragraphCient = new WordOffice.Run();

    WordOffice.RunFonts runFont = new WordOffice.RunFonts();
    runFont.Ascii = "Verdana";

    WordOffice.FontSize size = new WordOffice.FontSize();
    size.Val = new StringValue("22");

    WordOffice.RunProperties rp = new WordOffice.RunProperties();
    rp.Append(runFont);
    rp.Append(size);

    run_paragraphCient.PrependChild<WordOffice.RunProperties>(rp);

    string adress1 = "żąśńółęłćłńłćżśtestototTESTTOTtest";
    string adress2 = "żąśńółęłćłńłćżśtestototTESTTOTtest";

    run_paragraphCient.Append(new WordOffice.Text(adress1 + " " + adress2));
    run_paragraphCient.Append(new WordOffice.Break());
    run_paragraphCient.Append(new WordOffice.TabChar());
    run_paragraphCient.Append(new WordOffice.TabChar());
    run_paragraphCient.Append(new WordOffice.TabChar());
    run_paragraphCient.Append(new WordOffice.TabChar());
    run_paragraphCient.Append(new WordOffice.TabChar());
    run_paragraphCient.Append(new WordOffice.TabChar());
    run_paragraphCient.Append(new WordOffice.TabChar());

    string postalCode = "423$";
    string city = "324f4";

    run_paragraphCient.Append(new WordOffice.Text(postalCode + " " + city));


    paragraphClient.Append(run_paragraphCient);

    body.Append(paragraphClient);


    mainPart.Document.Append(body);

    mainPart.Document.Save();
}