2016-05-11 13 views
0

私はASP.NETでフォームを作成しています。最後のステップでフォームに入力すると、PDFファイルが生成されます。私はjsPDFを使用しました。 私が望むのは、生成されたpdfファイルをAzureストレージに送信(保存)することです。だれでも私を助けることができますか?生成されたPDFファイルをazureに保存します。

var account = new CloudStorageAccount(new Microsoft.WindowsAzure.Storage.Auth.StorageCredentials("storageaccount", 
        "accesskey"), true); 
var blobClient = account.CreateCloudBlobClient(); 
var container = blobClient.GetContainerReference("folderpath"); 

StringBuilder text = new StringBuilder(); 
string filePath = "C:\\Users\\username\\Desktop\\toPDF\\testing PDFs\\test.pdf"; 

if (File.Exists(filePath)) 
{ 
    PdfReader pdfReader = new PdfReader(filePath); 

    for (int page = 1; page <= pdfReader.NumberOfPages; page++) 
    { 
     ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy(); 
     string currentText = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy); 
     currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText))); 
     text.Append(currentText); 
     } 
     pdfReader.Close(); 

     using (MemoryStream ms = new MemoryStream()) 
     { 
     using (var doc = new iTextSharp.text.Document()) 
     { 
      PdfWriter writer = PdfWriter.GetInstance(doc, ms); 
      doc.Open(); 
      doc.Add(new Paragraph(text.ToString())); 
     } 
     var byteArray = ms.ToArray(); 
     var blobName = "test.pdf"; 
     var blob = container.GetBlockBlobReference(blobName); 
     blob.Properties.ContentType = "application/pdf"; 
     blob.UploadFromByteArray(byteArray, 0, byteArray.Length); 
     } 
    } 
+0

上記追加されたコード、それはちょうど私がイメージして、そのままPDFファイルを保存するために行うことができますどのように抽出されたテキストを保存します、色など? – user3116539

答えて

0

私は簡単な解決策を見つけ、これはコードが何をするかです:

string filePath = "C:\\Users\\username\\Desktop\\toPDF\\testing PDFs\\rpa.pdf"; 
var credentials = new StorageCredentials("storageaccount","accesskey"); 
var client = new CloudBlobClient(new Uri("https://jpllanatest.blob.core.windows.net/"), credentials); 

// Retrieve a reference to a container. (You need to create one using the mangement portal, or call container.CreateIfNotExists()) 
var container = client.GetContainerReference("folderpath"); 
// Retrieve reference to a blob named "myfile.pdf". 
var blockBlob = container.GetBlockBlobReference("myfile.pdf"); 

// Create or overwrite the "myblob" blob with contents from a local file. 
using (var fileStream = System.IO.File.OpenRead(filePath)) 
{ 
    blockBlob.UploadFromStream(fileStream); 
} 
0

クリック:それは、これは私がしようとしているコードで、それが働いているが、それはテキストのみを抽出しています、それはPDFファイルを保存しません。

UPDATEありがとうVisual Studioのソリューションで、Add => Add Connected Service => Azure Storageを選択し、ウィザードを実行します(必要に応じてストレージアカウントを作成します - ウィザードにはそのオプションがあります)。必要なすべての設定(接続文字列が含まれています)が設定されていれば、ブラウザでAzure Storageの使い方に関する詳細なチュートリアルが表示されます。それは情報と必要なコード部分を持っているので、私はここに含めません(おそらく、将来的には非難される情報を避けるために変更されるでしょう)。

Tutorial about Add Connected Service => Azure Storage functionality

関連する問題