Сохранение / сохранение форматирования.RTF шаблона

Цель: создать почтовые ярлыки и вывести их в MS Word или Wordpad как .rtf из предварительно сделанного .rtf шаблоны этикеток.

Проблема: когда метки открываются, их данные корректны, но они теряют большую часть своего форматирования из шаблона (например, столбцы, интервалы, поля). Я думаю, что это связано с открытием MS Word .rtfили .doc пытаясь открыть как .rtf, Но не уверен, как это исправить.

Ниже указано, где создается имя файла документа (template = "Labels"):

string argTempFileName = Helpers.Documents.DocumentRepositoryHelper.TempDocumentFileName(template);

...

public class DocumentRepositoryHelper
{
    private static string[] saveDocExt = { "doc", "txt", "xlsx" };
    private const string doctemplateext = "rtf";

    public static string TempDocumentFileName(string doc)
    {
        if (!System.IO.Directory.Exists(SavedTempDocumentsDirectory))
            System.IO.Directory.CreateDirectory(SavedTempDocumentsDirectory);
        string rtn = string.Format(@"{0}\{1}.{2}", SavedTempDocumentsDirectory, string.Format("{0}_{1}_{2}", ContestEntryHelper.Contest.StartDate.Year.ToString(), doc, DateTime.Now.ToString("MMddyyyy_HHmm")), saveDocExt[0]);

        return rtn;
    }
}

Затем, вернувшись из TempDocumentFileName, он извлекает данные для печати и сохраняет:

RichTextBox rtf = new RichTextBox();
string finalRtf = GetLabelsRtfToPrint(template, labeltype, worker); //works as expected
rtf.Rtf = finalRtf;

rtf.SaveFile(argTempFileName, RichTextBoxStreamType.RichNoOleObjs);

worker.ReportProgress(100);

OpenAsWordDocument(argTempFileName);

В настоящее время использует OpenAsWordDocumentно у меня тоже есть OpenAsRTFDocument в моем распоряжении. Это не код, который я написал, но мне было поручено исправить его. Интересно, смогу ли я использовать уже разработанные предметы.

public static void OpenAsWordDocument(string argTempFileName)
    {

        System.IO.FileInfo fileInfo = new System.IO.FileInfo(argTempFileName);
        System.Diagnostics.Process newProc = new System.Diagnostics.Process();
        newProc.StartInfo.FileName = argTempFileName;
        newProc.StartInfo.Verb = "Open";
        newProc.StartInfo.ErrorDialog = true;               // Display an error dialog if the process cannot start
        try
        {
            newProc.Start();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

    }

public static void OpenAsRTFDocument(string argTempFileName)
    {
        System.IO.FileInfo fileInfo = new System.IO.FileInfo(argTempFileName);

        System.Diagnostics.Process newProc = new System.Diagnostics.Process();
        newProc.StartInfo.FileName = "wordpad";
        newProc.StartInfo.Arguments = argTempFileName;
        newProc.StartInfo.Verb = "Open";
        newProc.StartInfo.ErrorDialog = true;               // Display an error dialog if the process cannot start
        try
        {
            newProc.Start();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

    }

Я пытался получить его, чтобы сохранить как .rtf, имея argTempFileName добавлен как .rtf вместо .doc, Но все еще имел ту же проблему с этим.

Пытаясь это, я также пытался использовать OpenAsRTFDocument вместо OpenAsWordDocument, но у меня все еще была та же проблема.

0 ответов

Другие вопросы по тегам