首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将PDF转换为TIFF格式

将PDF转换为TIFF格式
EN

Stack Overflow用户
提问于 2012-03-09 05:01:27
回答 3查看 4.3K关注 0票数 0

我正在编写一个VB.Net应用程序。我需要能够将Word或PDF文件转换为TIF格式。

免费会很好,但我也会接受低成本。

如果可能的话,我想要示例代码,VB更好,但我也知道c#

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-06 05:27:05

我发现有很多产品可以做到这一点。有些是收费的,有些是免费的。

我用的是黑冰http://www.blackice.com/Printer%20Drivers/Tiff%20Printer%20Drivers.htm。这是可以接受的,大约40美元。不过我没有买这个。

我最终使用了一个名为MyMorph的免费软件。

票数 0
EN

Stack Overflow用户

发布于 2012-03-09 12:36:45

使用imagemagick非常简单(你也必须下载ghostscript )。您只需使用VB将其作为进程运行即可。

代码语言:javascript
复制
Dim imgmgk As New Process()

    With imgmgk.StartInfo
        .FileName = v_locationOfImageMagickConvert.exe
        .UseShellExecute = False
        .CreateNoWindow = True
        .RedirectStandardOutput = True
        .RedirectStandardError = True
        .RedirectStandardInput = False
        .Arguments = " -units PixelsPerInch " & v_pdf_filename & " -depth 16 -flatten +matte –monochrome –density 288 -compress ZIP " & v_tiff_filename

    End With

    imgmgk.Start()

    Dim output As String = imgmgk.StandardOutput.ReadToEnd()
    Dim errorMsg As String = imgmgk.StandardError.ReadToEnd()
    imgmgk.WaitForExit()
    imgmgk.Close()

参数是多种多样的-使用imagemagick文档来查看它们是什么。您可以做一些简单的事情,只需传递pdf文件名和tiff文件名进行简单的转换。

票数 1
EN

Stack Overflow用户

发布于 2012-03-09 05:19:10

你可以使用Atalasoft DotImage (商业产品-强制性免责声明:我在Atalasoft工作,写了很多PDF代码):

代码语言:javascript
复制
// this code extracts images from the PDF - there may be multiple images per page
public void PdfToTiff(Stream pdf, Stream tiff)
{
    TiffEncoder encoder = new TiffEncoder(tiff);

    PdfImageSource images = new PdfImageSource(pdf);

    encoder.Save(tiff, images, null);
}

// this code renders each page
public void PdfToTiff(string pathToPdf, Stream tiff)
{
    TiffEncoder encoder = new TiffEncoder(tiff);

    FileSystemImageSource images = new FileSystemImageSource(pathToPdf, true);

    encoder.Save(tiff, images, null);
}

后一个示例可能就是您想要的。它在路径上工作,因为FileSystemImageSource利用代码在带有通配符的文件系统上操作。真的,这对这项任务来说有点过头了。如果你不想这样做,你会得到这样的结果:

代码语言:javascript
复制
public void PdfToTiff(Stream pdf, Stream tiff)
{
    TiffEncoder encoder = new TiffEncoder();
    encoder.Append = true;

    PdfDecoder decoder = new PdfDecoder();
    int pageCount = decoder.GetFrameCount(pdf);
    for (int i=0; i < pageCount; i++) {
        using (AtalaImage image = decoder.Read(pdf, i, null)) {
            encoder.Save(tiff, image, null);
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9624883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档