У меня есть файл слов с изображением объекта. Эта картина имеет 5 столбцов и 25 строк. Когда я щелкаю правой кнопкой мыши на картинке, у меня есть опция Edit Picture
. Когда я редактировал изображение, я обнаружил, что оно содержит несколько текстовых полей, хранящихся в форме / текстовом поле / таблице (честно говоря, я точно не знаю, что это за объект). Опции, которые я получаю, когда щелкаю правой кнопкой мыши по изображению, выглядят так:
Проблема: Я хочускопируйте текст из этих текстовых полей (по 1 столбцу за раз) за один раз (или, по крайней мере, несколько раз, используя цикл for) и вставьте его в какой-нибудь необработанный файл (text / excel / wordpad и т. д.). Но я понятия не имею, как создается это изображение.
Что я пробовал: Я пытался написать ac # код, чтобы сделать это. Сначала я пытался извлечь текст прямо из изображения. Я был на 90% успешным, но некоторые буквы не были распознаны моим исходным кодом. Итак, я подумал, можно ли это сделать другим или более простым способом! Непосредственно копирование из файла слова? Вручную я не могу скопировать содержимое всего текстового поля в столбце / raw сразу. Копирование из каждого текстового поля действительно беспокойно! Это код (я тоже пробовал docs.InlineShapes
, но не повезло):
private void button1_Click(object sender, EventArgs e)
{
string fileName = @"C:\path\to\source\file\test.docx";
object missing = System.Reflection.Missing.Value;
object readOnly = false;
object isVisible = true;
Word.Application wordApp = new Word.Application();
object firstShape = 1;
string textFrameText = null;
Word.Document docs = wordApp.Documents.Open(fileName, missing, readOnly, missing, missing, missing,
missing, missing, missing, missing, missing, isVisible, missing, missing, missing, missing);
if (docs.Shapes.Count > 0) ***//always its 0, so never enters the loop***
{
try
{
foreach (Word.Shape sh in docs.Shapes)
{
object ind = sh.Name;
wordApp.ActiveDocument.Shapes.SelectAll();
Thread.Sleep(1000);
wordApp.ActiveDocument.Shapes.get_Item(ref ind).Ungroup();
//after this I have to copy & paste the texts.
}
}
catch(Exception shp)
{
MessageBox.Show(shp.Message);
}
foreach (Word.Shape shape in docs.Shapes)
{
//just for testing purpose
MessageBox.Show(shape.ID + "\t" + shape.Type.ToString());
//shape.Delete();
//textFrameText += wordApp.ActiveDocument.Shapes.get_Item(ref firstShape).TextFrame.TextRange.Text + " ";
//if (shape.Type == Microsoft.Office.Core.MsoShapeType.msoTextBox)
//{
// // do something with shape.TextFrame.TextRange.Text
// string textFrame = shape.TextFrame.TextRange.Text;
//}
}
}
/*string textFrameText = wordApp.ActiveDocument.Shapes.get_Item(ref firstShape).TextFrame.TextRange.Text;
wordApp.Quit(ref missing, ref missing, ref missing);
string path1 = @"path\to\output\file\WriteLines.txt";
using (StreamWriter sw = new StreamWriter(path1, false))
{
sw.WriteLine(textFrameText);
sw.Close();
}
*/
Пример изображения:
Например, цель:
Серийный номер - ABC123 |Код заказа - WXY789 |Cust Num - 1234567
Извините! Изображение не так ясно. Я хочу сделать противоположное тому, что когда-либо предлагалось в этом ответе. В моем случае изображение остается редактируемым, а не чистым до тех пор, пока я не сохраню его как изображение или не сохраню файл как pdf
. Кто-нибудь может мне с этим помочь? Заранее спасибо.