Próbuję dodać prostą "stronę x y" do raportu przygotowanego za pomocą ReportLab .. Znalazłem o tym this old post, ale być może sześć lat później pojawiło się coś bardziej prostego? ^^;
znalazłem this recipe też, ale kiedy go używać, otrzymany PDF brakuje obrazów ..Wyświetlanie liczby stron za pomocą ReportLab
Odpowiedz
Udało mi się wdrożyć podejście NumberedCanvas z ActiveState. Było to bardzo łatwe i niewiele zmieniło mojego istniejącego kodu. Jedyne, co musiałem zrobić, to dodać klasę NumberedCanvas i dodać atrybut canvasmaker podczas budowania mojego dokumentu. Ja również zmienił pomiary gdzie został wyświetlony "X z Y":
self.doc.build(pdf)
stał
self.doc.build(pdf, canvasmaker=NumberedCanvas)
doc jest BaseDocTemplate i pdf jest moja lista elementów płynnych.
Czy obrazy pokazywały się normalnie przy takim podejściu? – Joril
Mam obrazy wyświetlające się w pdf bez żadnych problemów. Jeśli masz problem z obrazami, możesz opracować lub rozpocząć nowe pytanie? – adam
Wygląda na to, że technika ta łamie linki wewnątrz dokumentu. Kiedy go użyłem, wszystkie linki z jednej części dokumentu do innej części zaczęły się przesuwać w stronę pierwszej strony, a nie do rzeczywistych celów. – CoreDumpError
Wystarczy wykopaniu jakiś kod dla ciebie, używamy tego:
SimpleDocTemplate(...).build(self.story,
onFirstPage=self._on_page,
onLaterPages=self._on_page)
Teraz self._on_page
jest metoda która jest wywoływana dla każdej strony takiej jak:
def _on_page(self, canvas, doc):
# ... do any additional page formatting here for each page
print doc.page
Tak, ale trudną częścią jest jak odgadnąć część "z y" :) Oznacza to, że całkowita liczba stron – Joril
użycie doc.multiBuild
oraz w metodzie nagłówek strony (zdefiniowany przez "onLaterPages ="):
global TOTALPAGES
if doc.page > TOTALPAGES:
TOTALPAGES = doc.page
else:
canvas.drawString(270 * mm, 5 * mm, "Seite %d/%d" % (doc.page,TOTALPAGES))
działa to tylko w przypadku wielu przejść – jake77
- 1. Ukrywanie i wyświetlanie stron kart w tabControl
- 2. Proporcje obrazu za pomocą Reportlab w języku Python
- 3. Najprostsza formuła obliczania liczby stron?
- 4. Vimdiff: wyświetlanie całkowitej liczby zmian
- 5. Jak zeskrobać wiele stron za pomocą Import.io
- 6. Pobieranie stron równolegle za pomocą PHP
- 7. Drukowanie wielu stron za pomocą kodu Javascript
- 8. Skracanie stron ajax za pomocą python
- 9. Przełączanie stron za pomocą AJAX w Django
- 10. Dodawanie numerów stron za pomocą PDFBox
- 11. ReportLab LayoutError: za duży na stronie
- 12. Wyświetlanie XML za pomocą Google-kod-prettify
- 13. Wyświetlanie wykresu za pomocą biblioteki graficznej doładowania
- 14. Nieprawidłowe wyświetlanie za pomocą glEnable (GL_DEPTH_TEST)
- 15. Wyświetlanie skrótu strefy czasowej za pomocą Date.js
- 16. Dodając pełne liczby stron w lateksie, jak?
- 17. Wydajny sposób liczenia liczby stron do wydrukowania?
- 18. przesyłanie plików za pomocą javascript za pośrednictwem stron internetowych
- 19. Django reportlab latin2 encoding
- 20. Ustalanie liczby rdzeni procesowych za pomocą C++
- 21. Sprawdzanie poprawności liczby całkowitej za pomocą JSR303
- 22. Wyświetlanie liczby bloków pliku w hadoopie
- 23. Zwiększanie liczby wyświetleń strony zliczanie za pomocą lakieru i ESI
- 24. Obliczanie liczby stron, które będą drukowane przy użyciu okna Javascript.print
- 25. Dodawanie blasku do 3 stron za pomocą CSS
- 26. Konwersja stron pliku PDF do obrazów za pomocą itextsharp
- 27. artefakty przy renderowaniu obu stron przezroczystego obiektu za pomocą three.js
- 28. Jak używać KNPPaginatorBundle do dzielenia stron za pomocą repozytorium Doctrine?
- 29. Używanie równoległości do skrobania stron internetowych za pomocą R
- 30. Wykonanie parsowania stron za pomocą Node.js i XPath
miałem ten sam problem. Oto przepis z ActiveState wykorzystujący NumberedCanvas, który działa: http://code.activestate.com/recipes/576832/ – Esteban