使用javascript压缩并下载多个PDF文档

Zip and Download multiples PDF documents with javascript

本文关键字:PDF 文档 下载 javascript 压缩 使用      更新时间:2023-09-26

在我的Javascript代码中,我有一个文档位置的映射数组(带有Knockout)。

var mappedArray = $.map(self.checkedDocs(), function (item) { return  item.pdfloc() });

是否可以使用Javascript压缩和下载这些文档?

我最终压缩了服务器上的文档,压缩后我在客户端下载它们:

self.download = function () {
    var mappedArray = $.map(self.checkedDocs(), function (item) { return item.pdfloc() });
    self.service.zipDocs(ko.toJSON(mappedArray), function (data) {
        if (data == "Error") {
            $("#modalResult").text("Error has occured, please try later.");
            $("#modalConfirmation").dialog();
        }
        else if (data == "Success") {
            $("#modalResult").text("Your documents are being download.");
            $("#modalConfirmation").dialog();
        }
    });
}

API调用:

self.zipDocs = function (docs, callback) {
    $.ajax({
        url: "http://api.xxx.com/functions/zip",
        type: "POST",
        contentType: "application/json",
        dataType: "binary",
        data: docs,
        processData: false,
        success: function (blob) {
            saveAs(blob, "ZippedDocuments.zip");
            callback("Success");
        },
        error: function (data) {
            callback("Error");
        }
    });
}

和API c#cofr:

[HttpPost]
[Route("zip")]
public HttpResponseMessage ZipDocs([FromBody] string[] docs)
{
    using (ZipFile zip = new ZipFile())
    {
        zip.AddFiles(docs, false, "");
        return ZipContentResult(zip);
    }
}

我希望它能帮助那些面临同样问题的人。