Druckauftrag mit kyrillischen Zeichen (russisch)

Startseite Foren PDF24 Creator Allgemeines Druckauftrag mit kyrillischen Zeichen (russisch)

Ansicht von 4 Beiträgen - 1 bis 4 (von insgesamt 4)
  • Autor
    Beiträge
  • #1416
    peter2m
    Teilnehmer

    Hallo Zusammen,

    ich schicke aus einer Visual-Studio-Anwendung einen Druckauftrag mit kyrillischen Zeichen (russisch) an den PDF24 Creator. Leider werden bei allen kyrillischen Zeichen in der PDF-Datei nur Punkte (•••••••) angezeigt, obwohl ich in der Druckereinstellung True Type-Schriftart: "Als Softfont in den Drucker laden" eingestellt habe. Sende ich den Ausdruck an einen realen Drucker wird alles richtig angezeigt.

    Kennt jemand dieses Problem und kann mir Tipps geben, woran das liegen kann?

    Ciao Peter2m

    #3962
    pdf24
    Teilnehmer

    Bitte senden Sie mir ein Test-Code-Snippet und den Font an forum@pdf24.org, damit ich das nachvollziehen kann.

    #3965
    peter2m
    Teilnehmer

    Hallo,

    ich habe es nun mit C++ und C# getestet. Bei C# gibt es keine Probleme!

    Hier der C++ Code, welcher zu den Punkten führt:

    void CMFCApplication1Dlg::OnBnClickedButton1()
    {
    // TODO: Fügen Sie hier Ihren Kontrollbehandlungscode für die Benachrichtigung ein.
    CPrintDialog dlg(FALSE);
    if (dlg.DoModal() == IDOK)
    {
    CDC dc;
    dc.Attach(dlg.GetPrinterDC());
    DOCINFO di;
    di.cbSize = sizeof(DOCINFO);
    di.lpszDocName = L"Testdokument";
    di.lpszOutput = NULL;
    di.lpszDatatype = NULL;
    di.fwType = 0;
    dc.StartDoc(&di);
    dc.StartPage();
    CRect rtText(0, 0, 1000, 1000);
    CString strText = _T("Сформировано");
    dc.DrawText(strText, rtText, DT_LEFT | DT_TOP);
    int erg = dc.EndPage();
    if (erg >= 0)
    dc.EndDoc();
    else
    dc.AbortDoc();
    dc.Detach();
    }

    }

    Ciao Peter

    #3966
    peter2m
    Teilnehmer

    Musste den Font noch setzen 🙄 !!!

    So funktioniert es nun:

    void CMFCApplication1Dlg::OnBnClickedButton1()
    {
    // TODO: Fügen Sie hier Ihren Kontrollbehandlungscode für die Benachrichtigung ein.
    CPrintDialog dlg(FALSE);
    if (dlg.DoModal() == IDOK)
    {
    CDC dc;
    dc.Attach(dlg.GetPrinterDC());
    DOCINFO di;
    CFont font;
    LOGFONT lf;
    memset(&lf, 0, sizeof(LOGFONT));
    lf.lfHeight = 66; // request a 66-pixel-height font
    _tcsncpy_s(lf.lfFaceName, LF_FACESIZE, _T("Arial"), 7);
    VERIFY(font.CreateFontIndirect(&lf));
    CFont* def_font = dc.SelectObject(&font);
    di.cbSize = sizeof(DOCINFO);
    di.lpszDocName = L"Testdokument";
    di.lpszOutput = NULL;
    di.lpszDatatype = NULL;
    di.fwType = 0;
    dc.StartDoc(&di);
    dc.StartPage();
    CRect rtText(0, 0, 1000, 1000);
    CString strText = _T("Сформировано");
    dc.DrawText(strText, rtText, DT_LEFT | DT_TOP);
    dc.SelectObject(def_font);
    int erg = dc.EndPage();
    if (erg >= 0)
    dc.EndDoc();
    else
    dc.AbortDoc();
    dc.Detach();
    }

    }

    Ciao Peter

Ansicht von 4 Beiträgen - 1 bis 4 (von insgesamt 4)
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.