Позвоните в Excel из Acrobat Reader VSTO - PullRequest
1 голос
/ 09 сентября 2011

Вот моя проблема.

Я делаю шаблон Excel с помощью VSTO.Все данные, отображаемые в Excel, поступают из базы данных.В шаблоне Excel я поместил кнопку, которая открывает существующий шаблон формы PDF, заполняет его данными из БД и сохраняет копию.Для этого я использовал библиотеку ITextSharp, которая мне очень помогла.Пока здесь нет проблем.

Теперь я хочу, чтобы каждое поле в PDF-файле имело ссылку на ячейку в Excel.PDF только для чтения, и это только способ отображения данных, хранящихся в БД.Когда пользователь хочет изменить значение поля, он должен сделать это в Excel.Таким образом, цель состоит в том, чтобы, когда он хочет изменить значение в PDF, он просто щелкает по полю и собирается перенаправить на нужную ячейку в Excel, чтобы изменить значение.

Я не думаю, что есть способ выполнить это действие в JavaScript в Acrobat, потому что, если я не ошибаюсь, Acrobat не позволит вам вызвать макрос из JS.

Я подумал, может быть, во ВСТО есть способ контролировать Acrobat, но я его не нашел.

Если у вас есть идеи, как это сделать, я буду великолепен.Вот часть моего кода, может быть, это будет понятнее.

        string pdfTemplatePath = @"C:\Files.pdf";
        string pdfFinalFile = @"C:\fileCopy.pdf";
        PdfReader reader = new PdfReader(pdfTemplatePath);
        PdfStamper stamper = new PdfStamper(reader, new FileStream(pdfFinalFile, FileMode.Create));

        AcroFields form = stamper.AcroFields;
        foreach (DataRow row in data.Rows)
        {
            form.SetField(row["Name"].ToString(), row["Value"].ToString());

        }
        stamper.FormFlattening= false;
        stamper.Close();
...