Могу ли я создать веб-сервис для потоковой передачи PDF для загрузки - PullRequest
3 голосов
/ 19 августа 2010

У меня нет большого опыта работы с веб-сервисами, но я думаю, что у меня есть проблема, из-за которой веб-сервис работал бы отлично.

Моя компания только что купила .net-версию Cete Pdf Merger (кстати, отличный продукт). Мы используем как .Net, так и asp-код и, вероятно, будем использовать и Java в будущем.

Сценарий состоит в том, что одна технология (asp, java, .net) будет иметь список необработанных данных, таких как массив имен и значений полей. Эти данные будут опубликованы в веб-службе, которая затем откроет данный файл PDF, сопоставит поля формы PDF с массивом имен полей, захватит соответствующее значение, заполнит его в файле PDF, а затем отправит файл PDF обратно пользователю для загрузки.

Это кажется возможным? Есть какие-нибудь ошибки, с которыми я могу столкнуться? Любой предпочтительный метод работы (веб-сервисы, WCF, ???)

Ответы [ 5 ]

2 голосов
/ 19 августа 2010

Краткий ответ: WCF

Более длинный ответ: кажется, вы проводите различие между WCF и "веб-сервисами". Возможно, вы думаете о старых ".asmx" веб-сервисах. Microsoft теперь считает их «устаревшим программным обеспечением» и предлагает использовать WCF для всех новых разработок веб-служб.

1 голос
/ 20 августа 2010

Звучит как отличная идея.Вы можете использовать веб-службу .asmx (другие могут смотреть вниз на .asmx).

Предложить создание веб-метода примерно так:

(этот пример груб по краям, но онопишите общую идею)

[WebMethod]
public void CreatePdfIncomeTax(IncomeTaxForm itf)
{
    // integrate with Cete Pdf Merger 
    string fileName = SomePdfMerging(itf);

    Response.ContentType = "application/pdf";
    Response.AddHeader("Content-Disposition", "inline; filename=foo.pdf");
    Response.WriteFile(path);
    Response.Flush();
    Response.End();
}

...
// a class that the caller would populate as param to the webmethod
public class IncomeTaxForm 
{
   public string FirstName {get;set;}
   public string AddressLine1 {get;set;}
   ...
}
1 голос
/ 19 августа 2010

WCF (MSDN) - хороший выбор, но если вы хотите предоставить пользовательский интерфейс (например, HTML-форму для ввода значений полей), вы можете использовать обычную веб-формуи отправлять на страницу с HTTP, возвращая вывод PDF, передавая ответ с соответствующим MIME-типом.

1 голос
/ 19 августа 2010

Если вы собираетесь использовать веб-службы с .NET, я рекомендую использовать WCF (Windows Communication Foundation).

0 голосов
/ 20 августа 2010

Я сделал именно эту вещь, но использую Aspose в качестве компонента PDF.Мы использовали веб-сервис .asmx, а не WFC, что я и хотел.Я бы, конечно, согласился со всеми, кто сказал, что WCF - это путь.Я знаю, что предпочел бы это, но решение, к сожалению, не мое.

...