2010-01-08 3 views
3

고객이 PDF 양식을 작성한 다음 SharePoint 라이브러리에 게시하는 응용 프로그램이 있습니다. 문서가 게시되면 이벤트 처리기를 사용하여 양식에서 사용자 데이터를 추출하여 하나 이상의 공유 목록에 게시하려고합니다.PDF 양식 데이터를 SharePoint 목록으로 읽기

시작하는 방법에 대한 아이디어 - 저는 PDF 양식의 초보자이지만 SharePoint 개발에 대해 잘 알고 있습니다.

답변

0

as explained here (샘플 코드 포함) PDF 양식을 수신하는 사용자 지정 처리기를 작성할 수 있습니다.

또는 PDF 양식을 저장할 때 트리거되는 워크 플로를 사용하고 third party library을 사용하여 양식에서 데이터를 추출 할 수 있습니다.

SharePoint Designer 워크 플로를 사용하려는 경우 Workflow Power Pack과 같은 제품을 사용하여 .net 코드를 워크 플로에 직접 포함시킬 수 있습니다. (포기, 나는이 제품에 종사하고 그것은 fab ;-)이다.

아마도 PDF 양식을 사용해야 할 충분한 이유가 있을지 모르지만 InfoPath 나 MS-Word를 사용하여 양식을 작성하는 것도 고려해 볼 수 있습니다. SharePoint에서 Word 및 InfoPath 데이터를 쉽게 추출 할 수 있으며 원하는 경우 convert the documents to PDF as well을 사용할 수 있습니다.

3

www.pdfsharepoint.com을 살펴보십시오. 그들의 제품은 PDF 양식을 채우고 SharePoint에 제출할 수 있습니다. 필드를 SharePoint 열에 매핑 할 수 있습니다. 드미트리

0

당신이 다음 양식이 SharePoint 목록에 직접 데이터를 전송 할 수 있습니다 조치를 제출 PDF 양식을 사용할 수있는 경우

. 이렇게하려면 사용자 정의 http 핸들러를 작성하고 ".ashx"확장자가있는 _Layouts 폴더에 저장해야합니다.

PDF 형식으로 전송 작업을 설정하여 XML로 데이터를 제출하고 http 처리기의 URL을 가리 키도록하십시오.

다음은 핸들러의 예제 코드입니다. 여기

<%@ Assembly Name="Microsoft.SharePoint,Version=12.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" %> 
<%@ WebHandler Language="C#" Class="SP_PDFSubmitHandler" %> 

using System; 
using System.Web; 
using Microsoft.SharePoint; 
using System.Xml; 

public class SP_PDFSubmitHandler : IHttpHandler { 

    public void ProcessRequest (HttpContext context) { 
     SPSite site = SPContext.Current.Site; 
     SPWeb web = site.OpenWeb(); 

     try 
     { 
      string rawXML = ""; 
      XmlTextReader reader = new XmlTextReader(context.Request.InputStream); 
      XmlDocument xmlDoc = new XmlDocument(); 
      xmlDoc.Load(reader); 
      string _xmlString = xmlDoc.InnerXml; 
      System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding(); 
      string _fileTime = DateTime.Now.ToFileTime().ToString(); 

      byte[] docAsBytes = encoding.GetBytes(_xmlString); 

      //Insert Document 
     web.AllowUnsafeUpdates = true; 

      SPList list = web.Lists["Purchase Order"]; 
      SPListItem item = list.Items.Add(); 

      item["Title"] = "PurchaseOrder_" + _fileTime + ".xml"; 
      item["Company Name"] = xmlDoc.GetElementsByTagName("txtOrderedByCompanyName").Item(0).InnerText; 
      item["Date"] = xmlDoc.GetElementsByTagName("dtmDate").Item(0).InnerText; 
      item["Order Total"] = xmlDoc.GetElementsByTagName("numGrandTotal").Item(0).InnerText; 
      item.Attachments.Add("PurchaseOrder_" + _fileTime + ".xml", docAsBytes); 
      item.Update(); 

     //Redirect the browser to the Purchase Order list so we can see our submisison. 
     context.Response.Redirect("http://myserver/Lists/Purchase%20Order/AllItems.aspx"); 

     } 
     catch (Exception ex) 
     { 
      context.Response.Write(ex.Message); 
     } 


    } 

    public bool IsReusable { 
     get { 
      return false; 
     } 
    } 

} 
프로세스 여기 http://blogs.adobe.com/mtg/2009/03/submitting-data-from-an-pdf-form-to-ms-sharepoint.html

처리기 MSDN에 대한 포스트는 설명 큰 게시물 https://msdn.microsoft.com/en-us/library/bb457204.aspx