2016-05-05 10 views
1

にPDFファイルとしてキャンバスを保存します。
特定のコードを使用してダウンロードオプションを取得できますが、特定のパスにpdfを保存する適切な方法がありませんでした。
誰でも私は特定のパスにPDFとしてキャンバスを保存するのに役立ちますか?
ここに私のJavaScriptコードです。
私は特定のパス</b>にPDF <b>としてキャンバスを保存したい特定のパス

function saveAsPdf() { 
    var canvas = new fabric.Canvas('c', { selection: false}); 
    var customerId = getParameterByName("intCustomerId"); 
    var image = canvas.toDataURL(); 
    image = image.replace('data:image/png;base64,', '') 
    var imgData = canvas.toDataURL('image/png'); 
    var doc = new jsPDF('p', 'mm'); 
    doc.save('sample-file.pdf'); 
} 
+0

私はそれが可能であったが、あなたはセキュリティによって制限されています。私たちは、ウェブページを好きな場所に保存するだけで、あらゆる種類の騒乱を引き起こすことはありません。ブラウザのダウンロードディレクトリを必要な場所に設定する必要があり、クライアントだけがそれを行うことができます。 – Blindman67

+0

ありがとう、これを行うための他の方法がありますか?私のクライアントはどのようにそれが欲しい... – 3rdEye

+0

ブラウザによって異なります。いくつかのサンドボックスファイルシステムアクセスを含む拡張機能の追加権限を得ることができます(それ以上深く掘り下げたことはありません)が、拡張機能を作成し、クライアントが要求されたアクセスを受け入れる必要があります結局のところ、あなたがアクセスするように求めている彼らの私有財産です) – Blindman67

答えて

1

私は、直接私たちは、私はそれを保存するために別の方法を使用し、特定のpath.SoにPDFファイルを保存することはできませんことがわかりました。

string tempFileName = "temp.png"; 
    tempPathToSave = HttpContext.Current.Server.MapPath(tempFileName); 
    using (FileStream fs = new FileStream(tempPathToSave, FileMode.Create)) 
    { 
     using (BinaryWriter bw = new BinaryWriter(fs)) 
     { 
      byte[] data = Convert.FromBase64String(imageData); 
      bw.Write(data); 
      bw.Close(); 
     } 
     fs.Close(); 
    } 
    PdfDocument doc = new PdfDocument(); 
    doc.Pages.Add(new PdfPage()); 
    using (XImage img = XImage.FromFile(tempPathToSave)) 
    { 
    XGraphics xgr = XGraphics.FromPdfPage(doc.Pages[0]); 
    xgr.DrawImage(img, 0, 0); 
    doc.Save(pathToSave); 
    doc.Close(); 
    } 
    if (File.Exists(tempPathToSave)) 
     File.Delete(tempPathToSave); 

単に、temparary画像にキャンバスを保存し、PDFに画像を変換します。私はこれのためにPDFSharp.dllを使用しました。

関連する問題