找回密码
 立即注册

QQ登录

只需一步,快速开始

longgun119
论坛元老   /  发表于:2015-5-14 10:45:00
11#
回复 10楼AvoCaDolol的帖子

添加后还是出现一样的错误。。。
试了在项目中引用Leadtools.PDFEngine.dll,但引用不了,报错
回复 使用道具 举报
AvoCaDolol活字格认证 Wyn认证
社区贡献组   /  发表于:2015-5-14 10:57:00
12#
回复 11楼longgun119的帖子

您好,您可以试试将Leadtools.PDFEngine.dll放到与您网页平级的目录,例如您的网页为Default.aspx,请将Leadtools.PDFEngine.dll与Default.aspx放在一起试试。
回复 使用道具 举报
longgun119
论坛元老   /  发表于:2015-5-14 11:10:00
13#
回复 12楼AvoCaDolol的帖子

换了位置还是报一样的错误,以下是例子源码(主要想实现删除文件中的某一页)
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Leadtools.Web.Controls;
using Leadtools.Codecs;
using System.IO;

public partial class DocumentCleanDemo : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            #if LEADTOOLS_V175_OR_LATER
                Support.SetLicense();
            #else
                Support.Unlock();
            #endif // #if LEADTOOLS_V175_OR_LATER

            //Check if Kernel has expired
            if (Leadtools.RasterSupport.KernelExpired)
            {
                string msg = "Your license file is missing, invalid or expired. LEADTOOLS will not function. Please contact LEAD Sales for information on obtaining a valid license.";
                Page.ClientScript.RegisterStartupScript(this.GetType(), "KernalExpiredMessage", "alert('" + msg + "')", true);
                return;
            }

            //// Load RasterCodecs options from the configuration file
            //if (ConfigurationManager.AppSettings["RasterPdfInitialPath"] != null)
            //{
            //    string pdfInitialPath = ConfigurationManager.AppSettings["RasterPdfInitialPath"];
            //    if (!string.IsNullOrEmpty(pdfInitialPath))
            //    {
            //        // Setup default RasterCodecs options, these options are per thread
            //        // and will be used by any RasterCodecs object created after this
            //        using (RasterCodecs codecs = new RasterCodecs())
            //        {
            //            codecs.Options.Pdf.InitialPath = pdfInitialPath;
            //        }
            //    }
            //}

            //Load_File(@"Resources\Ocr.tif");
            get_upload_file();
        }
    }

    private void get_upload_file()
    {
        string dirPath = Server.MapPath("~/upload/");
        if (Directory.Exists(dirPath))
        {
            //获得目录信息
            DirectoryInfo dir = new DirectoryInfo(dirPath);
            //获得目录文件列表
            FileInfo[] files = dir.GetFiles("*.*");
            string[] fileNames = new string[files.Length];

            //临时数据表
            DataTable dt = new DataTable();
            dt.Columns.Add("file_name");

            foreach (FileInfo fileInfo in files)
            {
                DataRow dr = dt.NewRow();
                dr["file_name"] = fileInfo.Name;
                dt.Rows.Add(dr);
            }

            Repeater1.DataSource = dt;
            Repeater1.DataBind();

            if (hid_file_path.Value == string.Empty && dt.Rows.Count > 0)
                Load_File(@"upload\" + dt.Rows[0][0]);
        }
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        bool fileOK = false;
        string path = Server.MapPath("~/upload/");
        if (!System.IO.Directory.Exists(path))
            System.IO.Directory.CreateDirectory(path);

        if (FileUpload1.HasFile)
        {
            String fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
            String[] allowedExtensions = { ".gif", ".png", ".bmp", ".jpg", ".pdf", ".tif", ".tiff", ".doc", ".docx", ".txt", ".ppt", ".pptx", ".jbg", ".cmp", ".xlsx", ".xls" };
            for (int i = 0; i < allowedExtensions.Length; i++)
            {
                if (fileExtension == allowedExtensions)
                {
                    fileOK = true;
                }
            }
        }
        if (fileOK)
        {
            try
            {
                string file_name = DateTime.Now.ToString("yyyyMMddHHmmssfff") + FileUpload1.FileName.Substring(FileUpload1.FileName.LastIndexOf("."));
                FileUpload1.SaveAs(path + file_name);
                get_upload_file();
                Load_File(@"upload\" + file_name);
                LabMessage1.Text = "文件上传成功.";
            }
            catch
            {
                LabMessage1.Text = "文件上传失败.";
            }
        }
        else
        {
            LabMessage1.Text = "该类型文件无法上传.";
        }
    }

    static string sel_file = "";
    private void Load_File(string file_path)
    {        
        using (RasterCodecs codecs = new RasterCodecs())
        {
            CodecsImageInfo info = codecs.GetInformation(WebThumbnailViewer1.Page.MapPath(file_path), true);
            sel_file = file_path;

            WebThumbnailViewer1.Clear();
            if (info.TotalPages > 1)
            {
                string thumbText = string.Empty;
                for (int i = 0; i < info.TotalPages; i++)
                {
                    thumbText = string.Format("age{0}", i + 1);
                    WebThumbnailViewer1.Add(file_path, i + 1, i + 1, thumbText);
                }
            }
            else
            {
                WebThumbnailViewer1.Add(file_path, 1, 1, "age1");
            }
        }

        hid_file_path.Value = file_path;
        WebThumbnailViewer1.SelectedIndex = 0;
        WebImageViewer1.UseDpi = true;
        WebImageViewer1.MouseInteractiveMode.LeftButton = ImageViewerMouseInteractiveMode.Pan;
    }

    protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        Label lab_file = (Label)e.Item.FindControl("lab_file");
        if (lab_file != null)
            Load_File(@"upload\" + lab_file.Text);
    }

    protected void img_del_Click(object sender, ImageClickEventArgs e)
    {
        if (WebThumbnailViewer1.SelectedIndex >= 0)
        {
            WebThumbnailViewer1.Remove(WebThumbnailViewer1.SelectedIndex, WebThumbnailViewer1.SelectedIndex);

            if (sel_file.Substring(sel_file.LastIndexOf(".") + 1).ToLower() == "pdf")
            {
                Leadtools.Pdf.PDFFile pdf_file = new Leadtools.Pdf.PDFFile(WebThumbnailViewer1.Page.MapPath(sel_file));
                pdf_file.DeletePages(WebThumbnailViewer1.SelectedIndex, WebThumbnailViewer1.SelectedIndex, WebThumbnailViewer1.Page.MapPath(sel_file));
            }
            else
            {
                using (RasterCodecs codecs = new RasterCodecs())
                {
                    codecs.DeletePage(WebThumbnailViewer1.Page.MapPath(sel_file), WebThumbnailViewer1.SelectedIndex + 1);
                    //using (Leadtools.RasterImage image = codecs.Load(WebThumbnailViewer1.Page.MapPath(sel_file)))
                    //{
                    //    codecs.Save(image, WebThumbnailViewer1.Page.MapPath(sel_file), image.OriginalFormat, 0);
                    //}
                }
            }
        }
    }

}


前台源码:
<%@ Page Language="C#" AutoEventWireup="true" Inherits="DocumentCleanDemo" CodeBehind="DocumentCleanDemo.aspx.cs" %>

<%@ Register Assembly="Leadtools.Web" Namespace="Leadtools.Web.Controls" TagPrefix="ltwf" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
    <meta http-equiv="Expires" content="-1" />
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <meta name="robots" content="index, follow" />
    <title>Document Clean Demo</title>
    <meta name="description" content="" />
    <meta name="keywords" content="" />
    <link href="Resources/css/main.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="Resources/DocumentCleanButtons.js"></script>
</head>
<body>
    <form id="form1" runat="server">
    <div id="container">
        <center>
            <table cellpadding="0" cellspacing="0" border="0" style="border-color: White; width: 1200px">
                <tr>
                    <td>
                    </td>
                    <td colspan="2" style="border: 0; padding-top: 20px; padding-bottom: 10px; font-size: large;">
                        <asp:FileUpload ID="FileUpload1" runat="server" Width="500px" Height="25px" />&amp;nbsp;&amp;nbsp;
                        <asp:Button ID="Button1" runat="server" Text="Upload" OnClick="Button1_Click" />&amp;nbsp;&amp;nbsp;
                        <aspabel ID="LabMessage1" runat="server" ForeColor="red"/>
                    </td>
                </tr>
                <tr>
                    <td rowspan="3" align="center" valign="top" style="width: 200px; height:800px;">
                        <div class="toolbar" style="width: 95%; height: 100%; padding-top:10px;">
                            <asp:Repeater ID="Repeater1" runat="server" EnableViewState="true" OnItemCommand="Repeater1_ItemCommand">
                                <ItemTemplate>
                                    <div style="margin-bottom: 10px;" onmouseover="c=this.style.backgroundColor;this.style.backgroundColor='#FFFFFF';" onmouseout="this.style.backgroundColor=c;">
                                        <asp:ImageButton ID="img_file" CommandName='<%# Eval("file_name") %>' runat="server" ImageUrl="/resources/image_flag.jpg" Width="50px" /><br />                                      
                                        <aspabel ID="lab_file" runat="server" Text='<%# Eval("file_name") %>'></aspabel>
                                    </div>
                                </ItemTemplate>
                            </asp:Repeater>
                        </div>
                    </td>
                    <td colspan="2" valign="top" style="border: 0">
                        <ltwf:WebThumbnailViewer ID="WebThumbnailViewer1" runat="server" BorderStyle="Solid"
                            BorderWidth="1px" Height="160px" Width="1000px" ViewerID="WebImageViewer1" VerticalAlignMode="Center"
                            ThumbStyle-HoverBackColor="#D0D0D0" SelectedThumbStyle-BackColor="DarkRed" SelectedThumbStyle-HoverBackColor="Red"
                            BackColor="White" />
                    </td>
                </tr>
                <tr>
                    <td colspan="2" style="border: 0;">
                        <div id="infoBar" style="width: 1000px; background-color: Gray; border: 0;">
                            <%--<h1>Test</h1>--%>
                            <div id="zoom" class="section" style="border: 0;">
                                <%--<label>age Display Controls</label>--%>
                                <a id="btnZoomIn" title="Zoom In"></a>
                                <a id="btnZoomOut" title="Zoom Out"></a>
                                <a id="btnFit" title="Fit"></a>
                                <a id="btnFitWidth" title="Fit Width"></a>
                                <a id="btnView1to1" title="Full View"></a>
                                <a id="btnPan" title="change the mouse pointer to Pan"></a>
                                <a title="Delete Page"><asp:ImageButton ID="img_del" runat="server" ImageUrl="/resources/delete.png" Height="20px" Width="20px" onclick="img_del_Click" /></a>
                            </div>
                        </div>
                    </td>
                </tr>
                <tr>
                    <td align="center" valign="top" style="border: 0; width: 900px;">
                        <ltwf:WebImageViewer ID="WebImageViewer1" runat="server" BorderStyle="Solid" BorderWidth="1px"
                            Height="650px" Width="900px" HorizontalAlignMode="Center" VerticalAlignMode="Center"
                            ImageFrameSize="1" DropShadowSize="1" />
                    </td>
                    <td align="center" valign="top" style="border: 0; width: 100px;">
                        <div id="toolbar" class="toolbar" style="float: right;">
                            <a id="btnRotateLeft90" title="Rotate Left 90 degrees" style="cursor: pointer"></a>
                            <a id="btnRotateRight" title="Rotate Right 90 degrees" style="cursor: pointer"></a>
                            <a id="btnFlipHor" title="Flip Horizontal" style="cursor: pointer"></a>
                            <a id="btnFlipVer" title="Flip Vertical" style="cursor: pointer"></a>
                            <a id="btnResetImage" title="Reload the original page." style="cursor: pointer"></a>
                        </div>
                    </td>
                </tr>
            </table>
        </center>
    </div>
    <div style=" display:none;">
        <asp:HiddenField ID="hid_file_path" runat="server" />
    </div>   
    <script type="text/javascript">
        function btnResetImage_onclick() {
            var index = WebThumbnailViewer1.getSelectedIndex();
            var hid_file_path = document.getElementById("<%=hid_file_path.ClientID%>");
            if (hid_file_path != null)
                WebImageViewer1.OpenImageUrl(hid_file_path.value, index);
            else
                WebImageViewer1.OpenImageUrl("Resources\\DocCleanImages.tif", index);
        }
    </script>
    </form>
</body>
</html>
回复 使用道具 举报
AvoCaDolol活字格认证 Wyn认证
社区贡献组   /  发表于:2015-5-14 11:16:00
14#
回复 13楼longgun119的帖子

好的,您的源代码收到,我这边做一下测试看能否重现您的问题,之后给您答复。
回复 使用道具 举报
AvoCaDolol活字格认证 Wyn认证
社区贡献组   /  发表于:2015-5-14 12:10:00
15#
回复 13楼longgun119的帖子

非常抱歉让您久等了,这个问题我已经再现。

解决方法是,您将Leadtools.PdfEngine.dll拷贝到bin目录下,但同时需要指定这个位置。方法如下:
using (RasterCodecs codecs = new RasterCodecs())
{
      codecs.Options.Pdf.InitialPath = Server.MapPath(&quot;~/bin/&quot;);
      Leadtools.Pdf.PDFFile pdf_file = new Leadtools.Pdf.PDFFile(WebThumbnailViewer1.Page.MapPath(sel_file));
      pdf_file.DeletePages(WebThumbnailViewer1.SelectedIndex, WebThumbnailViewer1.SelectedIndex, WebThumbnailViewer1.Page.MapPath(sel_file));
}

如上代码所示,在删除并用PDFFile打开PDF文件之前,需要指定codecs.Options.Pdf.InitialPath,这个指定代表了Leadtools.PdfEngine.dll的位置,这样方便程序去调用。

经过测试这边已经成功删除掉PDF当中的一页。您可以试试看能否解决您的问题。

以上, 希望能帮助到您。

评分

参与人数 1满意度 +5 收起 理由
longgun119 + 5 可以了,O(∩_∩)O谢谢

查看全部评分

回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部