CMS 并将高分辨率图像存储在生成的 pdf 中

问题描述 投票:0回答:1

我正在寻找好的 CMS 来发布软件手册。

要求:

  • 将手册页发布为带有缩略图的网页,并在单击图像后显示完整分辨率,
  • 将手册页导出为 pdf 文件 使用全分辨率图像而不是缩略图

我发现恕我直言,最好的 wiki 系统名为 Tiki Wiki (https://info.tiki.org/),但当我导出到 pdf 时,我会得到低分辨率缩略图。

php pdf-generation content-management-system wkhtmltopdf tiki-wiki
1个回答
1
投票

我通过非常简单的Tiki Wiki代码修改解决了这个问题:

修改 lib/wiki-plugins/wikiplugin_img.php 以在打印页面模式下强制使用完整图像分辨率而不是缩略图(插入代码 1),并将生成的 HTML 中的图像重新缩放 0.5 倍(插入代码 2):

[...]

function wikiplugin_img( $data, $params )
{
    [...]

    $imgdata = array_merge($imgdata, $params);

    // inserted code 1 (~410 line)
    if ($GLOBALS['section_class']=="tiki_wiki_page print"){
        $imgdata['thumb'] = '';
    }
    // end of inserted code 1

    //function calls
    if ( !empty($imgdata['default']) || !empty($imgdata['mandatory'])) {

    [...]

    $fwidth = '';
    $fheight = '';
    if (isset(TikiLib::lib('parser')->option['indexing']) && TikiLib::lib('parser')->option['indexing']) {
        $fwidth = 1;
        $fheight = 1;
    } else {

        // inserted code 2 (~410 line)
        if ($GLOBALS['section_class']=="tiki_wiki_page print"){
            $fwidth = $imageObj->get_width() / 2;
            $fheight = $imageObj->get_height() / 2;
        } else {
            $fwidth = $imageObj->get_width();
            $fheight = $imageObj->get_height();
        }
        // end of inserted code 2 (~638 line)

     }

[...]

现在,通过 wkhtmltopdf 打印为 pdf 后,我们会得到带有小但全分辨率图像的 pdf。

额外修改:

  • 将以下行添加到cms/cssmenus.css(或打印模式中包含的其他CSS)以增加图像标题的下边距:

    div.thumbcaption {
        margin-bottom: 5mm;
    }
    
  • 删除 templates/tiki-show_content.tpl 中从 171 到 ~175 的行,以删除“原始文档位于”脚。

© www.soinside.com 2019 - 2024. All rights reserved.