paul_vin Ответов: 0

Я хочу сохранить (скачать) навигационную карту в виде изображения, которое содержит корневую навигацию и посещенное место


Я хочу сохранить (скачать) навигационную карту как изображение, которое содержит корневую навигацию и посещенное место, но когда я сохраняю его как изображение, то он показывает только навигационную линию
он не показывает карту.

Что я уже пробовал:

написанная Javascript функция, которая принимает идентификатор div, на котором присутствует навигационная карта, выглядит следующим образом


<script type="text/javascript" src="http://cdn.rawgit.com/niklasvh/html2canvas/master/dist/html2canvas.min.js"></script>
   
    
    

    <script type="text/javascript">
        function ConvertToImage(btnExportPdf) {
            debugger;
            alert("Hi");
            html2canvas($("#MyWhiteBoxMap")[0]).then(function (canvas) {
                debugger;
                var base64 = canvas.toDataURL();
                $("[id*=hfImageData]").val(base64);
                debugger;
                __doPostBack(btnExportPdf.name, "");

            });
            return false;
        }
</script>  



затем на кнопке нажмите я вызываю функцию

<asp:Button ID="btnExportPdf" runat="server" CssClass="btn btn-default" Text="To PDF Report" OnClientClick="Export()" OnClick="btnExportPdf_Click" ToolTip="Export Excel" />


код нажатия кнопки сервера выглядит следующим образом

protected void btnShowPrint_Click(object sender, System.EventArgs e)
   {


       //Dummy data for Invoice (Bill).
       string companyName = "";
       int orderNo = 2303;
       DataTable dt = new DataTable();
       if (ViewState["RecordData"] != null) { dt = (DataTable)ViewState["RecordData"]; }
       divReportInput.Visible = false;
       backgroundDiv.Visible = false;
       using (System.IO.StringWriter sw = new System.IO.StringWriter())
       {
           using (HtmlTextWriter hw = new HtmlTextWriter(sw))
           {
               System.Text.StringBuilder sb = new System.Text.StringBuilder();
               System.Text.StringBuilder sb2 = new System.Text.StringBuilder();
               //Generate Invoice (Bill) Header.
               sb.Append("<div style='text-align:center'>Report</div>");
               sb.Append("<table  style='width:100%'>");
               sb.Append(" <tr> <td >Device Name</td><td >: " + txtDeviceName.Text + "</td><td></td><td></td> </tr>");
               sb.Append(" <tr></td>");
               sb.Append("<td >Test Name</td> <td >: " + txtTestName.Text + "</td>");
               sb.Append("  <td >Report Generated by</td><td>: " + txtReportGeneratedby.Text + "</td>");
               sb.Append("</tr>");
               sb.Append(" <tr>");
               sb.Append(" <td >Start Date</td> <td >: " + txtStartDate.Text + "</td>");
               sb.Append("<td >End Date</td> <td >: " + txtEndDate.Text + "</td>");
               sb.Append("</tr>");
               sb.Append(" </table>");

               sb2.Append("<div style='text-align:center'>ROOT MAP</div>");
               //Export HTML String as PDF.
               System.IO.StringReader sr = new System.IO.StringReader(sb.ToString());
               System.IO.StringReader sr2 = new System.IO.StringReader(sb2.ToString());
               byte[] file;
               file = System.IO.File.ReadAllBytes(Server.MapPath("img/A.png"));//ImagePath
               iTextSharp.text.Image png = iTextSharp.text.Image.GetInstance(file);
               png.ScaleToFit(800F, 500F);//Set width and height in float


               //Addeded By vinayak

               //Capture(Server.MapPath("img/MapImage.jpg"));





               string base64 = Request.Form[hfImageData.UniqueID].Split(',')[1];
               byte[] bytes = Convert.FromBase64String(base64);
               Response.Clear();
               Response.ContentType = "image/png";
               Response.AddHeader("Content-Disposition", "attachment; filename=HTML.png");
               Response.Buffer = true;
               Response.Cache.SetCacheability(HttpCacheability.NoCache);
               Response.BinaryWrite(bytes);
               MemoryStream storeStream = new MemoryStream();
               MemoryStream ms = new MemoryStream(bytes);
               //write to file
               FileStream file1 = new FileStream(Server.MapPath("img/HTML100.png") , FileMode.Create,
               FileAccess.Write);
               ms.WriteTo(file1);
               file1.Close();
               ms.Close();
               Response.End();




               //Addeded By vinayak

               //takeComponentScreenShot(backgroundDiv);
               ////Map Img.......
               //byte[] fileMap;
               //fileMap = System.IO.File.ReadAllBytes(Server.MapPath("img/MapImage.jpg"));//ImagePath
               //iTextSharp.text.Image pngMap = iTextSharp.text.Image.GetInstance(fileMap);
               //pngMap.ScaleToFit(800F, 500F);//Set width and height in float


               iTextSharp.text.Document pdfDoc = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4.Rotate(), 10f, 10f, 10f, 0f);
               iTextSharp.text.html.simpleparser.HTMLWorker htmlparser = new iTextSharp.text.html.simpleparser.HTMLWorker(pdfDoc);
               iTextSharp.text.pdf.PdfWriter writer = iTextSharp.text.pdf.PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
               pdfDoc.Open();
               htmlparser.Parse(sr);
               pdfDoc.Add(png);
               htmlparser.Parse(sr2);
               //pdfDoc.Add(pngMap);
               pdfDoc.Close();
               Response.ContentType = "application/pdf";
               Response.AddHeader("content-disposition", "attachment;filename=Record Report.pdf");
               Response.Cache.SetCacheability(HttpCacheability.NoCache);
               Response.Write(pdfDoc);
               Response.End();

           }
       }

   }

Richard Deeming

function ConvertToImage(btnExportPdf) {

OnClientClick="Export()"


Имена функций не совпадают. И ваша клиентская функция должна будет вызвать preventDefault чтобы кнопка не могла опубликовать форму до того, как ваш холст будет нарисован.

0 Ответов