2013-06-26 7 views
2

Есть ли способ открыть PDF-документ с использованием JavaScript (или C#) и автоматически открыть его с помощью Acrobat, позволить пользователю редактировать документ и закрывать документ пользователя, сохранять обратно на сервер.Открыть PDF с javascript

Из моего исследования я нашел, что люди рекомендуют iTextsharp, но я не думаю, что это сделает то, что я пытаюсь выполнить.

В основном я пытаюсь имитировать функции проверки/проверки SharePoint.

+3

Чувствуйте, как SharePoint на самом деле это делает ... – Arm0geddon

+0

Вы можете создать PDF-форму с кнопкой отправки внутри. Кнопка отправки имеет несколько вариантов, вы можете отправить весь заполненный PDF-файл или просто отправить пары (имя, значение) в качестве http-сообщения. Затем вы можете вставлять этот файл на веб-страницу (с помощью программы чтения акробатов), – yms

+0

Если изменения, которые вы хотите сделать, идут дальше, чем заполнять формы, тогда я думаю, вам, возможно, придется отказаться. – yms

ответ

3

Игнорирование браузера, поэтому, если вы работаете в приложении C#, это вполне возможно и не так сложно, как может показаться. Детали будут зависеть от конкретной установки, но я предложил бы а-ля:

  • Скачать файл с сервера и сохраните его во временном месте с a .PDF extension. Ваша загрузка может быть over HTTP или via a UNC path or mapped drive. Убедитесь, что место, в котором вы сохраняете, - это файл, который вы можете читать/записывать и удалять файлы, - должно быть достаточно standard temp folder.

  • Используйте Process.Start для запуска Acrobat. Если Acrobat (или другой подходящий редактор) будет зарегистрирован в системе пользователя в качестве программы по умолчанию, которая открывается, когда пользователь дважды щелкает PDF, вы можете просто Process.Start сам документ без указания определенного глагола (команды). В противном случае вы можете look up and specify the correct verb или launch Acrobat itself and specify the filename.

  • Вы можете либо подождать, когда пользователь закроет Acrobat, то есть for the Acrobat process to finish, или watch the file for changes и отреагирует, когда это произойдет.Имейте в виду, что если вы наблюдаете за изменениями, которые Acrobat может сохранить исключительную блокировку в файле до тех пор, пока пользователь не закроет этот документ или Acrobat, так что вам может потребоваться либо дождаться завершения Acrobat, либо после обнаружения изменений, периодически проверяйте (опрос), пока не увидите может получить доступ к файлу.

  • Upload the file назад на сервер с помощью whatever means представляется наиболее подходящим.

1

Поскольку я знаю, что нет JS-решений для редактирования PDF (26.06.13), но есть способ их предварительного просмотра, например, с помощью чистого JS-решения PDF.JS.
Вам необходимо сгенерировать PDF-файлы на стороне сервера, используя чистые представленные данные.

+0

Я не пытаюсь создавать PDF-файлы. Я просто открываю PDF-файл в Acrobat и сохраняю его обратно на сервер, например SharePoint. – Arm0geddon

+0

В Интернете это невозможно, поскольку «сохранить назад» - это: открыть> изменить> сохранить (сгенерировать)> загрузить. И это не в функциональности PDF-читателей. Как я уже упоминал, вы можете отправлять необработанные данные из формы на сервер и создавать PDF там - это один из вариантов. Невозможно «сохранить» PDF, есть только способ «генерировать» его. – moka

4

Возможно, многое зависит от того, что именно вы пытаетесь выполнить и сколько контроля над вашей средой/пользователями. Посмотрев, что делают Acrobat X и SharePoint, похоже, что поддержка SharePoint встроена в Acrobat X.

Это можно легко (хорошо :-)) сделать, создав плагин Acrobat. Плагины способны отслеживать множество событий в Adobe Acrobat и реагировать на это. Они могут делать сложные вещи, такие как добавление файловой системы (которая позволяет вам открывать и сохранять файлы, которые фактически хранятся в базе данных, например), но есть, конечно, более простые стратегии, которые только можно себе представить.

Представьте себе плагин, живущий в Adobe Acrobat, который контролирует каждый файл, открытый пользователем. После просмотра файла, открытого с вашего сервера, он отмечает этот документ как один из ваших и проверяет его на сервере (однако вы хотите его реализовать). Когда пользователь сохраняет документ, получение которого также будет получено (как до, так и после фактического сохранения), и снова можно предпринять соответствующие действия.

Таким образом, общий ответ: да, это выполнимо при определенных обстоятельствах, если вы готовы написать подключаемый модуль, и если у вас достаточно контроля над вашей средой, вы можете убедиться, что все пользователи действительно имеют этот плагин установленный в Adobe Acrobat.