有这个编程问题的头痛。 (PHP,Tiff图像和双面打印机)

时间:2010-01-16 15:17:07

标签: php pdf printing duplex

我只是觉得我的脑袋会爆炸,除非有人帮我解决这个问题:

我为almos 100.000注册表中的每一个存储了一对TIFF图像(通过公共密钥相关)。我创建了一个PHP脚本,它接收一个键并回显tiff图像,因此浏览器返回tiff图像:

<?php
    // Determine the primary key to relate with the image table
    $numero_registro = $_GET['numero_registro'];

    $imagen = $_GET['imagen'];

    if ($numero_registro != "")
    {
        $con = mysql_connect("localhost","XXXXX","XXXXXX");
        if (!$con)
          {
          die('Problems with db: ' . mysql_error());
          }

        mysql_select_db("XXXXX", $con);

        $result = mysql_query("SELECT img FROM image_table i WHERE i.fk_civil_registry_code = $numero_registro");

        $i = 1;
        while($row = mysql_fetch_array($result) )
        {
            if ( $imagen == $i ) 
            {
                #img is a long blob field
                $ext="tiff";
                header("Content-type: image/{$ext}");
                echo $row['img'];
            }
            $i++;
        }

        mysql_close($con);
    }

?>

这只是工作,浏览器显示tiff图像。但是,这是一个tiff图像,所以显示孤独(并使用alternaTiff查看)。直到知道这没问题,因为我只需要打印一张图片。但是现在我的老板买了一台大型自动双面打印机,并把它放在他的办公室,所以我需要一种方法来生成一个pdf(两页)并将两个图像(echo $ row ['img'];)放在一起一页,所以他们可以打印PDF。

任何人都可以帮我这么做吗?

非常感谢。

3 个答案:

答案 0 :(得分:1)

所以你想生成一个2页的PDF,每页包含一个tiff图像吗?

以下链接可能会引起您的兴趣:

http://www.fpdf.org/

http://kevin.vanzonneveld.net/techblog/article/php_tiff2pdf/

然后您只需将PDF刷新到浏览器即可。

答案 1 :(得分:1)

你坚持使用PHP吗?如果您可以使用ASP.NET,my company有一组工具可以显示和打印来自AJAX控件的TIFF图像以及将生成自打印PDF文件的代码。如果您使用后者,则可以使您的Web工作在PHP中并连接到一个.NET服务,该服务需要N个tiff文件并生成一个可打印的PDF。

为了让您了解它的外观,采用两个tiff图像并转换为PDF的C#代码将是:

FileSystemImageSource images = new FileSystemImageSource(pathToTiff1, pathToTiff2);
PdfEncoder encoder = new PdfEncoder();
encoder.CreateSelfPrintingPdf = true;
encoder.Save(outputStream, images, null);

答案 2 :(得分:0)

您还可以使用带有page-break-before css properties的html文档,而不是pdf文档。例如尝试

<html>
  <head><title>...</title></head>
  <body>
    <div><img src="http://sstatic.net/so/img/logo.png" /></div>
    <div style="page-break-before:always;"><img src="http://sstatic.net/so/img/logo.png" /></div>
  </body>
</html>

然后转到浏览器中的打印预览。