Вызовите HPDF_SaveToFile() с японским именем файла

Я пытаюсь сохранить один PDF-файл в пути, который содержит японское имя пользователя. В этом случае HPDF_SaveToFile делает сбой моего приложения на окнах. Любые варианты для компиляции или другое? Любая идея, чтобы поддержать имена файлов Unicode с libhaur? Я не хочу создавать PDF с японским кодированием, я хочу написать PDF с японским именем файла.

1 ответ

Решение в Qt. Если вы используете C++, вы можете использовать fstream/ofstream(::write). Если вы используете C, вы можете использовать fwrite.

QFile file(path);
if (file.open(QIODevice::WriteOnly))
{
    HPDF_SaveToStream(m_pdf);
    /* get the data from the stream and write it to file. */
    for (;;)
    {
        HPDF_BYTE buf[4096];
        HPDF_UINT32 siz = 4096;
        HPDF_STATUS ret = HPDF_ReadFromStream(m_pdf, buf, &siz);

        if (siz == 0)
        {
            break;
        }

        if (-1 == file.write(reinterpret_cast<const char *>(buf), siz))
        {
            qDebug() << "Write PDF error";
            break;
        }
    }
}
HPDF_Free(m_pdf);

Refrence: Libharu Примеры использования

Другие вопросы по тегам