Jak utworzyć dokumentu RTF/PDF?

0

Witam.
Potrzebuję napisać stronę internetową (VS2010Pro/VS2012Pro), na której po dokonaniu edycji wielu pól tekstowych ściągniętych z bazy danych będzie można wygenerować dokument RTF dłuższy niż jedna strona spełniający następujące wymagania:

  1. nagłówek na 1ej stronie zawierający m.in. obrazek,
  2. stopka na 1ej stronie oprócz tekstu zawierająca obrazek,
  3. nagłówek na kolejnych stronach inny niż na pierwszej,
  4. stopka na kolejnych stronach inna niż na 1ej,
  5. tekst pisma może być długi na więcej niż jedną stronę.
    Jeśli generacja RTF jest dużym problemem, to w ostateczności może być plik PDF. Co prawda w przypadku ponownej edycji trzeba by się cofnąć do pól tekstowych i ponownie wygenerować PDF.
    CrystalReports odpada, bo wersja dla VisualStudio Prof. jest okrojona np. z Image/Picture, jak również umieszczenie ikony CR na stronie podobno wiąże się z dodatkowymi opłatami.
    Proszę o informację jakie są możliwe metody i podanie w punktach dla każdej z metod kolejnych kroków realizacji.
    Dziękuję za pomoc.
    :-)
1

Możesz zapoznać się z http://msdn.microsoft.com/en-us/library/aa140277%28office.10%29.aspx utworzyć plik i zapisać jako rtf :D Zresztą możesz stworzyć w wordzie jakiś dokument i zapisać jako rtf i otworzyć notatnikiem zobaczysz jak to wygląda mniej więcej. :D Oczywiście word generuje dużo za dużo a tutaj masz niezły opis. :P http://www.pindari.com/

0

Witam.
Mogę już w pliku RTF podstawiać inne dane jak poniżej.

Ale w pliku wynikowym wynik.rtf zamiast

ĄŚŻŹąśżźćłó

mam ĄŚŻŹąśżźćłó

Jak pozbyć się tych robali?

Czy jest jakaś "funkcja" np. mojString.PrzekodujNaCosTam() ?
Dzięki za pomoc

```csharp
protected void btnWczytajRtf_Click(object sender, EventArgs e)
{
    StringBuilder str = new StringBuilder();
    StreamWriter notesik;
    notesik = File.CreateText("c:\\wynik.rtf");
    if (FileUpload1.HasFile)
    {
        Stream stream = FileUpload1.FileContent;
        StreamReader reader = new StreamReader(stream);
        string strLine = "";
        do
        {
           strLine = reader.ReadLine();
           str.Replace("AAAAA", "ĄŚŻŹąśżźćłó");
           str.Append(strLine);
        } while (strLine != null);
        notesik.WriteLine(str);
        notesik.Close();
    }
}
0

Trzeba było zadać pytanie w nowym wątku albo nie oznaczać tego jako rozwiązany, bo teraz nikt nie zajrzy tutaj, skoro problem jest rozwiązany, nie?

Encoding w = Encoding.GetEncoding("Windows-1250");
Encoding utf8 = Encoding.UTF8;

byte[] utfBytes = utf8.GetBytes(jakisTamString);
byte[] wBytes = Encoding.Convert(utf8, w, utfBytes);
var przekodowanyString = w.GetString(isoBytes);

(strzelam, że Windows 1250 jest ci potrzebne, ale to co masz wygląda na UTF-8).

1 użytkowników online, w tym zalogowanych: 0, gości: 1