【发布时间】:2013-12-18 01:17:26
【问题描述】:
如何将 word 文档页面转换为特定图像?
我已使用以下代码将其转换为.tiff 图像
object varMissing = Type.Missing;
object varFalseValue = false;
object varTrueValue = true;
Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();
word.ActivePrinter = "Microsoft XPS Document Writer";
object fileName = startupPath + "\\" + filename1;
object falseValue = false;
object trueValue = true;
object missing = Type.Missing;
word.Visible = true;
word.Activate();
Document doc = word.Documents.Open(ref fileName, ref missing,
ref falseValue, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing);
doc.Activate();
object PrintToFile = true;
object OutputFileName = startupPath + "\\" + filename1.Split('.')[0] + ".tif";
doc.PrintOut(ref varMissing, ref varFalseValue, ref varMissing,
ref OutputFileName, ref varMissing, ref varMissing, ref varMissing,
ref varMissing, ref varMissing, ref varMissing, ref PrintToFile,
ref varMissing, ref varMissing, ref varMissing, ref varMissing,
ref varMissing, ref varMissing, ref varMissing);
doc.Close(ref varMissing, ref varMissing, ref varMissing);
word.Quit(ref varMissing, ref varMissing, ref varMissing);
//Multi to Single
MemoryStream ms;
Image myImage;
FileStream fs = new FileStream(startupPath + "\\" + filename1.Split('.')[0] + ".tif", FileMode.Open);
fs.Seek(0, SeekOrigin.Begin);
//Here I am getting error....
myImage = Image.FromStream(fs, true, false);
Guid myGuid = myImage.FrameDimensionsList[0];
FrameDimension myDimension = new FrameDimension(myGuid);
int myPageCount = myImage.GetFrameCount(myDimension);
for (int i = 0; i < myPageCount; i++)
{
ms = new MemoryStream();
myImage.SelectActiveFrame(myDimension, i);
myImage.Save(string.Format(startupPath + "\\" + filename1.Split('.')[0] + ".tif", i), ImageFormat.Tiff);
}
fs.Close();
但是当我尝试将文件流转换为图像时,它给了我类似的错误
Parameter is not valid.
有没有其他方法可以将word文件转换为图像文件?
我无法使用市场上出售的 dll,但我需要使用 Microsoft's core interop dll.
所以请任何人都可以建议我将.doc文件转换为.jpg的链接或方法。
【问题讨论】:
-
您的错误出现在哪一行?
-
当我将 FileSram 对象 fs 转换为 Image 对象 myImage 时。
-
开个玩笑。
Image.FromStream用于将包含图像的流转换为内存中的图像。它不会将任何任意流转换为图像! -
谢谢先生的补充。我从其他网站找到了该代码。而且我看到的大多数帖子都使用了我应用的相同代码。我的参考链接是groups.google.com/forum/#!topic/…。那么你能告诉我如何将 doc 文件转换为图像文件。
-
先生,另一件事是,在我的代码中将文件流转换为图像之前,我已经放置了一些创建 .tif 文件的代码。所以在那个流中我得到了 .tif 文件流。不是任意流。