首页 > 解决方案 > 如何在 C 中使用 PDFGen 将字体添加到 pdf

问题描述

背景:
我正在开发一个程序,该程序将从一组图像生成 PDF 文件。
我正在使用这个库:https ://github.com/AndreRenaud/PDFGen 。

问题:
我想使用 Calibri-Bold 作为每个 PDF 封面的字体,一切正常,除了当我打开 output.pdf 文件时出现错误“The font 'Calibri-Bold' contains a bad /BBox”和字母间距不正确。

代码:

#include "pdfgen.h"

int main(void) {
    struct pdf_info info = {
            .creator = "",
            .producer = "Band'a la Page",
            .title = "Piccolo book",
            .author = "Theo SARDA",
            .subject = "Band'Ales book for Piccolo",
            .date = "Today"
    };
    struct pdf_doc *pdf = pdf_create(PDF_A6_HEIGHT, PDF_A6_WIDTH, &info);
    pdf_set_font(pdf, "Calibri-Bold");
    pdf_append_page(pdf);
    float x[] = {PDF_MM_TO_POINT(0), PDF_MM_TO_POINT(80), PDF_MM_TO_POINT(100), PDF_MM_TO_POINT(60), PDF_MM_TO_POINT(0)};
    float y[] = {PDF_MM_TO_POINT(0), PDF_MM_TO_POINT(0), PDF_MM_TO_POINT(70), PDF_MM_TO_POINT(105), PDF_MM_TO_POINT(105)};

    pdf_add_filled_polygon(pdf, NULL, x, y, 5, 0, PDF_ARGB(0xFF, 0xC0, 0x00, 0x00));
    pdf_add_text(pdf, NULL, "Carnet Piccolo", 12, 30, 30, PDF_WHITE);
    //pdf_add_line(pdf, NULL, 50, 24, 150, 24, 3, PDF_BLACK);
    pdf_save(pdf, "output.pdf");
    pdf_destroy(pdf);
    return 0;
}

结果:
截图:

在此处输入图像描述

问题:
如何使用 Calibri-Bold 字体而不出现此类问题?

标签: cpdffonts

解决方案


推荐阅读