Изменение страницы в LIb Haru (C++)?

Я работаю над проектом, в котором я должен конвертировать документы в PDF файлы программно на C++. Я использую библиотеку с открытым исходным кодом libharu для этого. Мой код работает хорошо, если документ состоит из одной страницы, но когда я меняю страницу, документ PDF портится и не открывается. Может ли кто-нибудь предложить решение для этого.

while(chars_traversed < text.size())
{
    chars_copied = HPDF_Page_MeasureText(pd->track->page , (text.c_str() + chars_traversed) , pw , false , NULL);
    memset(buffer , 0 , sizeof(buffer));
    text.copy(buffer , chars_copied , chars_traversed);

    HPDF_Page_MoveToNextLine(pd->track->page);
    HPDF_Page_ShowText (pd->track->page, buffer);

    chars_traversed += chars_copied;

    arr = HPDF_Page_GetCurrentTextPos(pd->track->page);

    if(arr.y < end_y)
    {
                    /* Page change required */
        HPDF_Page_EndText(pd->track->page);
        insert_page_at_last(pd);
        HPDF_Page_MoveTextPos(pd->track->page , start_x , start_y);
         }
}

2 ответа

Как только вы достигнете нижней части страницы и хотите начать другую страницу, вам нужно

  HPDF_Page_EndText (hPage)
  hPage = HPDF_AddPage (pdf)
  HPDF_Page_BeginText (hPage)
  HPDF_Page_MoveTextPos (hPage, LeftMargin, nHeight - TopMargin)

Этот синтаксис для Powerbasic, но я предполагаю, что вы поняли идею.

Обратитесь к этому исходному коду LIB Haru.

Это описывает, как конвертировать documents в pdf файлы очень хорошо.

Этот API также полезен для вас.

Надеюсь, что это поможет вам.

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