DOCX para PDF… com propriedades personalizadas do documento

1

TLDR : Como posso converter um DOC (X) em um PDF e mantenha CustomDocumentProperties e Fields - para que eu possa atualizar programaticamente as propriedades personalizadas e imprima o PDF através de um serviço do Windows ?

! TLDR

Temos uma aplicação interna personalizada que combina a criação do DOCX - seguida de atualizações de campo e impressão. O aplicativo como está - um programa baseado em Windows Form - funciona, mas requer que ele seja executado a partir do shell do usuário. Eu quero atualizar este programa para ser executado a partir de um serviço do Windows.

O problema com o DOCX em um serviço do Windows está sendo impresso. Deve ter o Word instalado no servidor. O Word não roda bem fora do shell de um usuário - Diálogos Modais, prompts de usuário (você deseja restaurar um desses? Deseja habilitar a edição deste documento? Etc), entradas de registro necessárias, etc.

Estou explorando o ajuste do nosso fluxo de trabalho para PDFs no servidor.

Fluxo de trabalho

Preparação / Preparação DOC (X) (Manual, não no programa):

  • Importar / executar o VBScript:
    • Obter colunas de tabela / exibição de um banco de dados.
    • Cada coluna entra em um Custom DocumentProperty.
  • Coloque os campos no documento para as propriedades personalizadas desejadas.

Portanto, CustomerName , AddressLine1 , City , etc são adicionados como CustomDocumentProperties ... e os campos são colocados nos locais certos em um formulário para serem impressos automaticamente no programa automatizado.

Uso DOCX (Automático, no programa):

  • Puxar linha da mesma tabela
  • Coloque os dados corretos em cada CustomDocumentPropertyField
  • Atualizar campos (substitui CustomerName por Doe, John , City por Whoville , etc)
  • Imprimir documento para corrigir a impressora

Alterações desejadas

Eu estou olhando para

a. Converta o DOC (X) em um PDF de forma que a transferência de propriedades personalizadas - assim como a capacidade de substituir os campos - permaneça intacta. Seria 1) Crie DOCX (muitos deles existem atualmente e é o fluxo de trabalho atual), 2) Converta para PDF, 3) Atualize / imprima PDF. PRO: Uso continuado de produtos de palavras com os quais os clientes estão satisfeitos / treinados. CONS: Conversão docx / pdf possivelmente complexa no meio em troca da impressão PDF mais fácil dentro de um serviço do Windows.

b. Substitua o DOC (X) completamente e, em vez disso, use ferramentas de criação de PDF. PRO: o mesmo processo de duas etapas. CON: Usuários estão acostumados a criar DOC (X). Software / treinamento adicional pode ser necessário. Muitos documentos precisariam ser convertidos.

c. Contornar DOCX como um serviço e obtê-lo para imprimir dentro de um serviço.

Esta questão está explorando a - DOC(X) conversion to PDF . Dado um documento do Word com propriedades personalizadas do documento e campos colocados no documento ... parece que perdem essas propriedades E os campos são substituídos pelos valores atuais quando eu converto para PDF via Save As PDF no Word. Quais outras opções viáveis existem para converter em PDF - mantendo essas informações para a etapa 2) DOCX Usage/Printing .

    
por WernerCD 05.02.2014 / 05:08

1 resposta

0

Use pdfsharp, é uma biblioteca de código aberto. Você pode definir as propriedades personalizadas do pdf assim:

PdfDocument document = PdfReader.Open("c:\Test.pdf"); 
document.Info.Elements.Add(
     new KeyValuePair<String, PdfItem>("/MyKey", new PdfString("MyValue")));
document.Save("c:\test.pdf");
    
por 23.06.2014 / 13:52