Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用c在pdf上创建一个透明面板来绘制#_C#_Pdf_Graphics_Mouseevent_Line - Fatal编程技术网

C# 如何使用c在pdf上创建一个透明面板来绘制#

C# 如何使用c在pdf上创建一个透明面板来绘制#,c#,pdf,graphics,mouseevent,line,C#,Pdf,Graphics,Mouseevent,Line,我正试图编写一个小应用程序来查找pdf文件中几个点之间的距离,目前我一直在努力让透明面板正常工作 已知XY,CD长度,使用像素位置计算xc和dy(例如xc=40像素) 如何在pdf上创建一个透明面板来绘制线,或者更好的方法是在每个点(x、c、d、y)上单击以收集x轴位置数据来计算距离 非常感谢您的帮助。 谢谢 rellik可能您可以使用不透明属性?PDF显示在哪个控件中?它在网络浏览器中吗?恐怕这些不支持winforms的虚假透明度。我相信它只能与支持DrawToBitmap的控件一起工作。韦

我正试图编写一个小应用程序来查找pdf文件中几个点之间的距离,目前我一直在努力让透明面板正常工作

已知XY,CD长度,使用像素位置计算xc和dy(例如xc=40像素)

如何在pdf上创建一个透明面板来绘制线,或者更好的方法是在每个点(x、c、d、y)上单击以收集x轴位置数据来计算距离

非常感谢您的帮助。 谢谢
rellik

可能您可以使用不透明属性?PDF显示在哪个控件中?它在网络浏览器中吗?恐怕这些不支持winforms的虚假透明度。我相信它只能与支持
DrawToBitmap
的控件一起工作。韦布罗瑟没有。如果它是另一个控件,请测试它是否支持
DrawToBitmap
。如果没有,则需要通过
CopyFromScreen
从屏幕读取像素。您可以在
图片框中显示结果
,或者在其上放置一个
面板
,面板上有
BackColor=Color.Transparent
,或者在PB的表面上绘制更简单的图形。您好@TaW谢谢您的回复,我正在使用Acrobat reader Activex控件来显示pdf文件。我尝试了透明面板和picturebox方法,其中没有一种对我有效。我也尝试了鼠标事件来获取光标的位置,结果很好。我可能需要以位图的形式打开pdf?如果可以的话,这听起来像是一个选项。但我真的认为你应该能够使用CopyFromScreen来获取像素。请看一看与此相关的问题(即需要在支持GDI图形方法的控件中显示不可直接访问的像素)。。!
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace PP_from_PDF
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            panel1.BackColor = Color.FromArgb(0, 0, 0, 0);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();
            openFileDialog1.Filter = "Portable Document Files (.PDF)|*.PDF";
            openFileDialog1.FilterIndex = 1;
            if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                axAcroPDF1.src = openFileDialog1.FileName;
            }
        }

    }
}