C# 如何使用c在pdf上创建一个透明面板来绘制#
我正试图编写一个小应用程序来查找pdf文件中几个点之间的距离,目前我一直在努力让透明面板正常工作 已知XY,CD长度,使用像素位置计算xc和dy(例如xc=40像素) 如何在pdf上创建一个透明面板来绘制线,或者更好的方法是在每个点(x、c、d、y)上单击以收集x轴位置数据来计算距离 非常感谢您的帮助。 谢谢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的控件一起工作。韦
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;
}
}
}
}