我有一个用户上传PDF提交系统,而往往用户会上传已本来预定打印时,我们只需要他们的网络规模观看非常大型的PDF文件。 我需要自动压缩它们的服务器上。 我们正在运行Windows Server 2003。 现在,我们只需要通过用户上传PDF SoftArtisans.FileUp
方法。
我的问题是什么是做到这一点后会自动上传用户的PDF服务器上的最佳或最简单的方法是什么?
我有一个用户上传PDF提交系统,而往往用户会上传已本来预定打印时,我们只需要他们的网络规模观看非常大型的PDF文件。 我需要自动压缩它们的服务器上。 我们正在运行Windows Server 2003。 现在,我们只需要通过用户上传PDF SoftArtisans.FileUp
方法。
我的问题是什么是做到这一点后会自动上传用户的PDF服务器上的最佳或最简单的方法是什么?
为什么不试试这个网站。 使用它之前,它的工作原理确定:
http://www.neeviapdf.com/PDFcompress/?w=code
Docotic.Pdf库可能是你的情况是有用的。
如果我理解你的权利,你愿意减少上传PDF文件大小/图像质量和应用等一般压缩选项。
下面是这样的场景示例代码。 编码:
使用类似的代码样本中,你应该能够优化上传的文件。
public static void compressPdf(string path, string outputPath)
{
using (PdfDocument doc = new PdfDocument(path))
{
foreach (PdfImage image in doc.Images)
{
// image that is used as mask or image with attached mask are
// not good candidates for recompression
//
// also, small images might be used as mask even though image.IsMask for them is false
//
if (!image.IsMask && image.Mask == null && image.Width >= 8 && image.Height >= 8)
{
if (image.ComponentCount == 1)
{
// for black-and-white images fax compression gives better results
image.RecompressWithGroup4Fax();
}
else
{
// scale image and recompress it with JPEG compression
// this will cause image to be smaller in terms of bytes
// please note that some of the image quality will be lost
image.Scale(0.5, PdfImageCompression.Jpeg, 65);
// or you can just recompress the image without scaling
//image.RecompressWithJpeg(65);
// or you can resize the image to specific size
//image.ResizeTo(640, 480, PdfImageCompression.Jpeg, 65);
}
}
}
doc.SaveOptions.RemoveUnusedObjects = true;
// this option causes smaller files but
// such files can only be opened with Acrobat 6 (released in 2003) or newer
doc.SaveOptions.UseObjectStreams = true;
// this option will cause output file to be optimized for Fast Web View
doc.SaveOptions.Linearize = true;
doc.Save(outputPath);
}
}
免责声明:我对位的奇迹,该库的供应商合作。