Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2008-05-16 12:02:57

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Php - wyciąganie danych z pliku i wydruk dwustronny

Witam! Mam taki skrypt który wyciąga mi dane z pliku i wszystko ok! Ucina mi także za pomocą css wydruk gdy zobaczy podany znak w danej kolumnie. Wygląda to tak:


$obraz = "<center>"."<IMG src=obrazek.bmp alt=Zdjęcie>"."</center>";

$przed = array("^", "!", "~");
$po = array("&nbsp;", "&nbsp;", $obraz);
$first=true;
$fd = fopen("plik.txt", "r");
while (!feof ($fd)) {
  $BUFFER = fgets($fd, 152);
  if ($BUFFER[41]=="~") {
    if (! $first) echo "</div>";
    $first=false;
    echo "<div>". str_replace($przed , $po, $BUFFER);
  } else if ($BUFFER) {
    echo str_replace($przed , $po, $BUFFER);

  } else
    echo " ";
}
echo "</div>";
?>

jak widać zamienia tez niepotrzebne znaki na spacje oraz znaczek ~ który zamienia na obraz.
I właśnie - w pliku plik.txt w niektórych miejscach mam w kolumnie 41 wstawiony znaczek ~
w związku z czym za pomocą css ucina mi w tym miejscu wydruk. I jest ok. Wygląda to tak:

gość1
dane dane asdasdasdas
dsadasdasdasdasdasdsa
adasdasdasdasd

asrtyrtytrytrysadasd
adssadasdasdas
rtytrytryrt
dane dalsze itd
                                         ~

gość2
dane dane asdasdasdas
dsadasdasdasdasdasdsa
adasdatyrtyry

asdsadsadsadasd
adssadasdasdas
adads
dane dalsze itd
                                         ~

gość3
dane dane asdasdasdas
dsadasdasdasdasdasdsa
adasdasdasdasd

asdserwerwerwsdas
adads
dane dalsze itd
                                         ~

Czyli ładnie dane wyświetlają mi się po jednej stronie a nie jedno pod drugim ( a raczej powinno to ładnie wyglądać ).
Problem tkwi w tym że danych jest czasami bardzo dużo przypuszczalnie na 2 czasem 3 strony dla jednej osoby czasami część obrazka wychodzi do połowy na jednej stronie z reszta na drugiej ( oczywiście dzięki css są one i tak spoko oddzielone od siebie stronami)
Ale chodzi mi głównie o wydruk dwustronny. Czy da się to zrobić jakoś skryptem
żeby np - jeśli jest jedna strona dodawał jedną pustą ( żeby mozna było drukarką puścić to dwustronnie ) lub jeśli są dwie nic niedodawał lub jeśli są trzy dodawał jedną pustą -
czyli generalnie jeśli liczba stron np dla gość1 jest nieparzysta to żeby dodał pustą stronę. Bo o co chodzi- jeśli mam gość1 i pod nim jest gość2 to jeśli puszcze wydruk dwustronny to na jednej kartce będe miał z jednej strony dane gościa1 a z drugiej dane gościa2. I tak samo jesli gość1 bedzie miał dane na 3 strony to przy dwustronnym wydruku wyjdą dwie strony jedna z jednej i drugiej strony dane gościa1 i druga strona z jednej strony dane gościa1 a zdrugiej dane gościa2.( oczywiście liczba stron może wyjść nieokreślona- czyli 3,4,5,6 np)
Był bym bardzo wdzięczny za pomoc.

Jeszcze taka uwaga - wydruk jest ucinany dzięki znaczkowi ~  który zamieniany jest na obrazek - obrazek może mieć różną wysokość także ciężko by było włąściwie określić jak to wyjedzie jeśli znakiem kontrolnym miałby być ~. Dlatego jestem wstanie pod ~ wrzucić jeszcze jakiś inny znacznik np *.

Ostatnio edytowany przez debbie (2008-05-16 12:04:03)


debbie
Wrócę jak zjem zupę i drugie danie - tyle
a oto ta zupa:

Offline

 

#2  2008-05-16 16:17:51

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: Php - wyciąganie danych z pliku i wydruk dwustronny

takim podzialem aby zaczynac zawsze od strony nie parzystej musi zajac sie css (bo dopiero na etapie przegladarki i systemu drukowania jestesmy w stanie zidentyfikowac to ile stron wydruku zajmuje dana sekcja) ... pokaz zatem fragment css odpowiedzialny za podzial strony po obrazku / poszukaj tam opcji aby zaczynac od nieparzystej


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#3  2008-05-19 07:46:21

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: Php - wyciąganie danych z pliku i wydruk dwustronny

No tak tylko samym podziałem stron zajmuje się opcja:

<style type="text/css"><!--
div { page-break-after: always;
}

no i poprostu div'em łamie sobie te strony
ale jak zrobić jakąś kontrole :
1 strona dodaje jedną pustą
2 strony nic nie dodaje
3 strony dodaje jedną pustą
itd.


debbie
Wrócę jak zjem zupę i drugie danie - tyle
a oto ta zupa:

Offline

 

#4  2008-05-19 08:43:56

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: Php - wyciąganie danych z pliku i wydruk dwustronny

Wymysliłem jeszcze coś takiego:

^
gość1
dane dane asdasdasdas
dsadasdasdasdasdasdsa
adasdasdasdasd

asrtyrtytrytrysadasd
adssadasdasdas
rtytrytryrt
dane dalsze itd
suma
                                         ~

^
gość2
dane dane asdasdasdas
dsadasdasdasdasdasdsa
adasdatyrtyry

asdsadsadsadasd
adssadasdasdas
adads
dane dalsze itd
suma
                                         ~

^
gość3
dane dane asdasdasdas
dsadasdasdasdasdasdsa
adasdasdasdasd

asdserwerwerwsdas
adads
dane dalsze itd
suma
                                         ~

jak widać dodałem znaczek ^
jest tam też stały tekst suma.
I teraz czy można by było zrobić jakiś licznik lini przypuszczalnie warunek gdzie:

jeżeli od ^ do ~  wyraz "suma" jest w przypuszczalnie 30 lini to dodaj stronę
a jeśli jest w 70 lini(czyli druga strona) to niedodawaj itd. np dla 5 różnych pozycji.

Ostatnio edytowany przez debbie (2008-05-19 09:16:02)


debbie
Wrócę jak zjem zupę i drugie danie - tyle
a oto ta zupa:

Offline

 

#5  2008-05-19 13:28:34

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: Php - wyciąganie danych z pliku i wydruk dwustronny

1. liczenie linii w php rozjedzie sie w zwiazku z roznymi ustawieniami czcionek drukarek itd w przegladarkach i nie jest dobrym pomyslem
2. jak mowilem to jest robota dla CSS a nie dla PHP czy jakiegokolwiek jezyka side-serwer
3. zainteresuj sie page-break-after: left; albo page-break-after: right;


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#6  2008-05-19 14:52:22

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: Php - wyciąganie danych z pliku i wydruk dwustronny

Powiem szczerze że niewiem jakiego skryptu css użyć odnośnie skrytu php który napisałem powyżej
Za pomocą
<style type="text/css"><!--
div { page-break-after: always;
}

Mogę uciąć sobie wydruk ale niemoge mu ustawić liczby parzystych stron dla każdego bloczku.
Jak widzisz w skrypcie php jest ustawione kiedy ma ucinać wydruk - jeśli pojawi się znak ~
Ale w przypadku parzysych stron musiał by robić jakąś kontrole tak jak pisałem powyżej - jeśli
między ^ a ~ np w 30 lini pojawi się wyraz suma to dodaj strone ( albo użyje div i utnie mi jedną więcej )


debbie
Wrócę jak zjem zupę i drugie danie - tyle
a oto ta zupa:

Offline

 

#7  2008-06-26 18:33:27

  romek04 - Nowy użytkownik

romek04
Nowy użytkownik
Zarejestrowany: 2008-06-26

Re: Php - wyciąganie danych z pliku i wydruk dwustronny

Zobacz tutaj:
http://www.scrapingsystems.com/

pozdrawiam
romek

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)