Seeking a Solution for Text Transcription and Copying in Streamlit

Hello everyone! I would like to transcribe some text and input it into a box with a copy button. After several searches, I couldn’t find any way to do this in Streamlit. I also tried using st.code, but unfortunately, it puts the entire transcription on a single line. Is there any solution for this situation in Streamlit? Thank you!

One option would be to use textwrap to split your text into multiple lines, like this:

If that is the issue, you can use textwrap.

import textwrap

s = """Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque ornare facilisis ligula ac fermentum. Aenean et est urna. Fusce vitae ullamcorper ante. Aenean porta non massa sodales varius. Proin pretium varius iaculis. Vestibulum a accumsan augue, eu rhoncus turpis. Phasellus rutrum tellus tristique finibus faucibus. Sed quis justo a lacus sodales efficitur. Aliquam ac odio ut leo lacinia facilisis. Nunc sollicitudin bibendum eros, nec scelerisque ipsum lobortis non.

Nam ultrices felis eu eros rhoncus ullamcorper. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Quisque egestas efficitur mollis. Vivamus aliquet dictum sem, in placerat justo finibus ut. Donec eu neque vulputate, dapibus augue a, laoreet justo. Ut ultrices enim pharetra felis bibendum, quis malesuada metus ultrices. Cras lacinia dui a dignissim tincidunt. Proin est odio, consectetur id commodo quis, consectetur id enim. Nunc velit eros, eleifend eget urna eu, dignissim faucibus dui. Quisque euismod, magna quis commodo auctor, nunc felis vulputate risus, ut mattis elit orci ac diam.

Vivamus interdum maximus orci, eget dapibus felis. Donec hendrerit diam ex, ut posuere nulla molestie posuere. Vivamus ex lectus, faucibus at rhoncus in, facilisis vel neque. Duis dapibus augue at condimentum porttitor. Cras dictum tempor arcu. Interdum et malesuada fames ac ante ipsum primis in faucibus. In facilisis auctor finibus. In eget malesuada orci. Nullam sagittis imperdiet consectetur. Nam commodo mauris vulputate magna malesuada, vitae blandit sapien accumsan. Sed viverra elementum felis id tristique.

Morbi diam enim, ullamcorper vel augue vel, porta dignissim arcu. Duis mattis nisl turpis, id ullamcorper massa mattis eget. Nunc aliquet consectetur massa, id facilisis lorem eleifend ac. Nunc commodo maximus nisl id posuere. Vivamus rutrum odio vitae blandit sagittis. Morbi ac dolor eu quam vehicula condimentum. Sed sed scelerisque odio, sed placerat ante.

Nam nec urna ut ante blandit molestie vitae ut urna. Nulla ullamcorper sem purus, in rutrum quam iaculis ut. Etiam venenatis arcu vitae felis scelerisque, ut tempor sem vestibulum. Fusce quis velit dui. Nunc eu porttitor dui. Etiam condimentum malesuada auctor. Vestibulum et sem eget justo consequat lacinia. Sed placerat libero vitae nunc viverra, eu bibendum nibh commodo. Ut eros lacus, accumsan a velit et, ultricies iaculis felis. Aenean iaculis ipsum sit amet justo feugiat, non luctus felis rhoncus. Quisque in erat in erat convallis aliquet. Ut finibus ante non diam tempor, ut suscipit eros feugiat. Sed eget eros massa. Quisque vel eros viverra, dictum neque vitae, placerat mauris. Cras ultrices quam lacinia, iaculis nisl ac, cursus purus.
"""

st.text("\n".join(textwrap.wrap(s)))

Output:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque
ornare facilisis ligula ac fermentum. Aenean et est urna. Fusce vitae
ullamcorper ante. Aenean porta non massa sodales varius. Proin pretium
varius iaculis. Vestibulum a accumsan augue, eu rhoncus turpis.
Phasellus rutrum tellus tristique finibus faucibus. Sed quis justo a
lacus sodales efficitur. Aliquam ac odio ut leo lacinia facilisis.
Nunc sollicitudin bibendum eros, nec scelerisque ipsum lobortis non.
Nam ultrices felis eu eros rhoncus ullamcorper. Orci varius natoque
penatibus et magnis dis parturient montes, nascetur ridiculus mus.
Quisque egestas efficitur mollis. Vivamus aliquet dictum sem, in
placerat justo finibus ut. Donec eu neque vulputate, dapibus augue a,
laoreet justo. Ut ultrices enim pharetra felis bibendum, quis
malesuada metus ultrices. Cras lacinia dui a dignissim tincidunt.
Proin est odio, consectetur id commodo quis, consectetur id enim. Nunc
velit eros, eleifend eget urna eu, dignissim faucibus dui. Quisque
euismod, magna quis commodo auctor, nunc felis vulputate risus, ut
mattis elit orci ac diam.  Vivamus interdum maximus orci, eget dapibus
felis. Donec hendrerit diam ex, ut posuere nulla molestie posuere.
Vivamus ex lectus, faucibus at rhoncus in, facilisis vel neque. Duis
dapibus augue at condimentum porttitor. Cras dictum tempor arcu.
Interdum et malesuada fames ac ante ipsum primis in faucibus. In
facilisis auctor finibus. In eget malesuada orci. Nullam sagittis
imperdiet consectetur. Nam commodo mauris vulputate magna malesuada,
vitae blandit sapien accumsan. Sed viverra elementum felis id
tristique.  Morbi diam enim, ullamcorper vel augue vel, porta
dignissim arcu. Duis mattis nisl turpis, id ullamcorper massa mattis
eget. Nunc aliquet consectetur massa, id facilisis lorem eleifend ac.
Nunc commodo maximus nisl id posuere. Vivamus rutrum odio vitae
blandit sagittis. Morbi ac dolor eu quam vehicula condimentum. Sed sed
scelerisque odio, sed placerat ante.  Nam nec urna ut ante blandit
molestie vitae ut urna. Nulla ullamcorper sem purus, in rutrum quam
iaculis ut. Etiam venenatis arcu vitae felis scelerisque, ut tempor
sem vestibulum. Fusce quis velit dui. Nunc eu porttitor dui. Etiam
condimentum malesuada auctor. Vestibulum et sem eget justo consequat
lacinia. Sed placerat libero vitae nunc viverra, eu bibendum nibh
commodo. Ut eros lacus, accumsan a velit et, ultricies iaculis felis.
Aenean iaculis ipsum sit amet justo feugiat, non luctus felis rhoncus.
Quisque in erat in erat convallis aliquet. Ut finibus ante non diam
tempor, ut suscipit eros feugiat. Sed eget eros massa. Quisque vel
eros viverra, dictum neque vitae, placerat mauris. Cras ultrices quam
lacinia, iaculis nisl ac, cursus purus.
1 Like

Thank you very much for the solution! It worked using this method.

Thank you for the suggestion. I used this method.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.