各位!
因此,正如标题所暗示的,我正在尝试将PDF转换为.png。我使用的是软件包ImageMagick。我想用这个包把pdfs从unity3d项目中即时转换成.png,这样应用程序就可以在需要的时候在游戏中以.png纹理的形式显示PDFs,但对于较小的文件大小,仍然可以把它们保存为PDFs。我不太确定我做错了什么--但当我在Unity中运行它时,我得到的只是一个打开的cmd提示符,其中没有我的命令。我是不是明显漏掉了什么?代码如下:
using UnityEngine;
using System.Collections;
using System.IO;
using System.Reflection;
using System.Security.Policy;
public class CommandLineTest : MonoBehaviour {
// Use this for initialization
void Start () {
string convertedDirName = "ConvertedPDFs";
string currDir = System.Environment.CurrentDirectory;
System.IO.Directory.CreateDirectory(currDir + @"\" + convertedDirName);
string strCmdText;
strCmdText= @"/c " + currDir + @"\ImageMagick\convert.exe " + currDir + @"\PDFs\Appointment.pdf " + currDir + @"\" + convertedDirName + @"\" + "Appointment.png";
System.Diagnostics.Process.Start("CMD.exe",strCmdText);
//ImageMagick
print(strCmdText);
}
}当运行末尾的打印语句时,它将打印以下字符串: c/ convert和F:\Documents Settings\Administrator\Desktop\ImageMagickTest\ImageMagick\convert.exe Settings\Administrator\Desktop\ImageMagickTest\PDFs\Appointment.pdf F:\Documents /c Settings\Administrator\Desktop\ImageMagickTest\ConvertedPDFs\Appointment.png
对你来说,有没有什么明显的问题?值得一提的是,ImageMagick的convert应用程序实际上并没有“安装”在我的系统上--我只是在使用“可移植”版本,并将其放入了我的项目文件夹中。所以我希望“转换”命令行仍然可以工作。这是否意味着我不能通过dos提示符访问它?如果我不能,那么如果我知道图像将在我的项目文件夹中,我如何将图像传递给imagemagick中的“转换”程序呢?
编辑:有些人建议我访问convert.exe而不是cmd.exe,并尝试以这种方式将图像路径提供给它。下面是我尝试的第二种方式:
strCmdText= currDir + @"\PDFs\Appointment.pdf" + " " + currDir + @"\" + convertedDirName + @"\" + "Appointment.png";
System.Diagnostics.Process.Start(currDir + @"\ImageMagick\convert.exe",strCmdText);发布于 2012-11-08 21:31:44
尝试使用其他一些命令(如dir)来找出您在文件系统中所处的位置以及哪里出了问题。
还要记住,如果您使用的是可移植版本,并且它不在您的路径中,则必须从与中相同的目录中执行它。
https://stackoverflow.com/questions/13289718
复制相似问题